You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何释放单链表并将头节点置为NULL?代码正确性及验证咨询

问题解答

1. 该函数能否将头节点置为NULL?

可以。你的free_list函数接收的是头指针的二级指针(list **head),函数末尾的*head = NULL语句直接修改了外部传入的头指针变量的指向,而非仅修改函数内部的临时变量,因此能成功将原头节点置为NULL。

2. 如何检查头节点是否已被设为NULL?

有两种简单的检查方式:

  • 条件判断验证:调用free_list后,直接判断原头指针变量是否等于NULL,示例代码:
// 假设原头指针为list *my_list;
free_list(&my_list);
if (my_list == NULL) {
    puts("头节点已被置为NULL");
} else {
    puts("头节点未被置为NULL");
}
  • 打印指针地址验证:通过打印指针的地址值判断,若输出为(nil)或0x0(不同编译器输出略有差异),则说明已置为NULL,示例代码:
free_list(&my_list);
printf("头指针地址: %p\n", (void*)my_list);

内容的提问来源于stack exchange,提问作者Leuel Asfaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 09:27:38