gpt4 book ai didi

c - 传递一个包含 NULL 的结构指针突然包含一个结构而不是 NULL

转载 作者:行者123 更新时间:2023-11-30 21:48:20 24 4
gpt4 key购买 nike

好吧,我重新创建了一个较小的示例,但问题仍然存在......

评论表明发生了什么。期望指针为 NULL,但在第二次将其传递给另一个函数后,我得到了一个带有 NULL 值的结构。

标题.h

typedef struct node {
int data;
struct node *next;
} *List;

源文件.c

#include "Header.h"
#include <stdio.h>
#include <stdlib.h>

void two(List *self)
{
//*self does not = NULL now
//*self = a struct with null data and next values
}

void one(List *self)
{
two(&self);
// *self = 0x0000... NULL
}

int main()
{
List test = NULL;
one(&test);
}

最佳答案

List test = NULL;
one(&test);

test 是指向结构节点 的指针。我们传递那个地址指向 one 的指针,允许 one 更改 test (让它返回一个新指针是执行此操作的更简洁的方法)。

one 然后执行以下命令:

two(&self);

two 现在正在传递 test 的地址。这是可能不是你想要的。传递 test 的地址仍然可以让如果您想要这样做,请更改 test:

two(self);

关于c - 传递一个包含 NULL 的结构指针突然包含一个结构而不是 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36244088/

24 4 0
文章推荐: c# - Json.NET 未能将 Json 反序列化为仅字段类
文章推荐: javascript - 遍历我的sql结果并循环显示
文章推荐: php - 当 mysql 服务器启动/重新启动时运行更新/删除查询?
文章推荐: c# - 使用 join 和 where 从 Linq SQL (Lambda) 返回 List