我正在阅读 C Primer Plus 的第 17 章,这里是释放书中链表的代码段:
/* Program done, so free allocated memory */
current = head;
while (current != NULL)
{
free(current);
current = current->next;
}
printf("Bye!\n");
return 0;
}
在while语句中,“当前”变量如何在已经被释放后获得下一个值?我在网上搜索了一些免费链表的代码段,它们似乎在while语句中使用了两个指针以避免前面的问题。
但是,如果这是一个错误,我无法在勘误表中找到它。那么有什么意见吗?
谢谢!