【发布时间】:2013-10-28 14:02:46
【问题描述】:
我正在使用链表并填充结构,但是当我删除整个结构并尝试打印链表的内容(应该为空)时,会出现一个数字列表。我知道这可能是内存问题。有什么解决方法的建议吗?
删除整个链表的代码:
void destroy(set_elem *head)
{
set_elem *current = head;
set_elem *next;
while (current != NULL)
{
next = current->next;
free(current);
current = next;
}
head = NULL;
}
【问题讨论】:
-
删除整个结构后,就不能再打印了,仅此而已。
-
我认为问题在于您将本地头指针设置为 NULL,而不是调用者中的头指针。你需要一个双指针。
-
释放内存后访问内存是未定义的行为。
标签: c list pointers memory linked-list