current = head;
while (current != NULL)
{
current = head;
head = current->next;
free(current);
}
这是书上的一段代码,但是程序在执行过程中却无法正常停止,出现报错,请问是什么原因?
但是将这段代码调换一下顺序后却能正常运行:
current = head;
while (current != NULL)
{
head = current->next;
free(current);
current = head;
}
第一段代码再进行第二次循环前最后一条语句已经释放了current指针,而第二次循环的条件却又引用了已经释放的current指针,当然有错误啦