我有以下结构:崩溃印刷链表
struct coords
{
int x;
int y;
struct coords* previous;
struct coords* next;
};
我再有这些COORDS的双向链表(格式为(X,Y)),这应该是这样的(其中头尾巴开始和列表的末尾):
head tail
(-1, -1) <--> (0, 1) <--> (2, 1) <--> (1, 0) <--> (0, 2) <--> (-1, -1)
我想打印这个名单,所以我有以下代码:
struct coords* iter = head;
while (iter->next != NULL)
{
printf("\n [this node: (%d, %d)] -> [next node: (%d), (%d)]", iter->x, iter->y, iter->next->x, iter->next->y);
iter = iter->next;
}
printf("done with loop");
我得到的输出是这样的:
[this node: (-1, -1)] -> [next node: (0, 1)]
[this node: (0, 1)] -> [next node: (2, 1)]
[this node: (2, 1)] -> [next node: (1, 0)]
[this node: (1, 0)] -> [next node: (0, 2)]
[this node: (0, 2)] -> [next node: (-1, -1)]
这一切都是正确的。但是,在打印最后一行后,我的程序立即崩溃,而不打印“用循环完成”。
你确定最后一项有'next'设置为null吗? – John3136
一个非常简单的解决方案。我不知何故忽略了这一点。谢谢。 – blacktrance