【发布时间】:2013-11-24 01:35:30
【问题描述】:
所以我正在尝试使用这个函数来删除 C 中的整个单链表。
void zeroList( struct node *head)
{
struct node* tempDelete;
struct node* current = head;
while(current != NULL)
{
tempDelete = current;
current = current->next;
free(tempDelete);
}
}
我遇到了一个问题,因为当我尝试验证列表本身是否已被删除(通过打印它)时。我留下的东西看起来像这样:
{ 0->146513968->146513952->146513936-> NULL }
{ 146513920->146514048->146514032->146514016->146514000-> NULL }
{146513984->146514064->146514080->146514096->146514112->146514128->146514144->146514160->146514176-> NULL }
我的印象是节点不会仍然存在,或者至少它们会包含 NULL 值。谁能解释为什么我会收到这些奇怪的垃圾号码?
【问题讨论】:
-
你打印的到底是什么?
-
我打印的值是结构节点内的整数。
标签: c linked-list free