C 这段代码如何理解?

c primer plus这本书中,
linked list这部分free list memory有这样的代码:

current = head;
while (current != NULL)
{
free(current);
current = current->next;
}

我的不解是
current 既然已经free了,current->next为什么还能知道值?

谢谢!

阅读 1k
1 个回答

free 函数执行后:

  1. 被分配的内存空间不再属于你。
  2. 这段空间被标记为后续可被 malloc 分配。
  3. 但是这段空间不会清空或者被改写
  4. 不要再使用这段空间,它随时可能会被分配掉。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进