【发布时间】:2013-11-09 00:23:17
【问题描述】:
我正在尝试实现一个链表,但遇到了一个非常顽固和令人沮丧的问题。这是相关代码。
Node* current = list->head;
Node* previous = malloc(sizeof(Node*));
previous = NULL;
while(current != NULL){
if(current == NULL){
printf("current is null");
}
last = current;
current = current->next;
if(last == NULL){
printf("last is null");
}
}
现在的问题是它正在打印
“最后一个为空”
经常但不打印出来
“当前为空”
一次。如果 current 不为 null 并且我设置 last = current 那么为什么 last 保持为 null?
感谢您提供的所有见解
【问题讨论】:
-
这段代码在许多琐碎的方面都被严重破坏了。
-
在一个while循环中,只要
current不是NULL,你认为if(current == NULL)什么时候会是真的? -
好吧,我认为发生了一些我目前不明白的事情,因为我将 last 设置为 current(不是 NULL)但 last 仍然是 NULL。我将打印语句放入以尝试更好地了解情况:(
-
令我吃惊的一点是,据称这如何设法打印“last is null”。
-
老兄,我希望不是这样,但这就是我正在处理的事情
标签: c null-pointer