删除链接列表中的所有元素

jus*_*ser 0 c linked-list list

temp = Head;
while (Head != NULL) {
    Head = temp->nextPtr;
    free(temp);
}
Run Code Online (Sandbox Code Playgroud)

在我的项目中,我使用临时链表,我想同时删除链表中的所有元素,但编译器给出了Segmentation Fault.

zmi*_*jko 5

你在temp=Head;那里的某处,在循环的开始或结束时失踪... temp停留在第一个头上.

最简单的是temp=Head;从循环之前移动到循环内的第一行.

while (Head != NULL) {
    temp = Head;
    Head = temp->nextPtr;
    free(temp);
}
Run Code Online (Sandbox Code Playgroud)