c - 如何使用 void 修改链表节点?

标签 c nodes

我有一个程序,它有一个名为 head 的节点。我想将 head 设置为 NULL,但是我想在 void 内执行此操作。所以我将头节点传递给方法:

void removeNode(node* head) {
head = NULL;
}

然而,这并没有改变主函数中的头部,只是在空处改变。有谁知道如何更改作为参数传递给 void 的节点的值?

P.S:根据要求,我不能使用 free 函数或任何内存未分配方法。

最佳答案

您需要这样做:

void removeNode(node** head) {
    (*head) = NULL;
}

这会将实际指针更改为NULL,以便它不再指向任何内容。

关于c - 如何使用 void 修改链表节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26422407/

相关文章:

php - 使用PHP和Xpath解析XML时无法访问子节点

C++ 无法在已经创建并从文本文件中读取的列表中打印整个列表

c - 如何在C中使用malloc正确分配内存

c++ - 一个函数知道它的参数占用多少内存吗?

c - 简单的数学方程在 C 编程中不起作用

java - 如何在 Java 中使用 BinarySearchTree 创建 add 方法?

java - 计算树中的左子节点

c - 为什么 pthread_cond_signal 有时不起作用?

c - 指向数组的指针与普通指针

c - 修改链接列表中的值 - 返回已编辑的列表,但缺少节点。 (C)