gpt4 book ai didi

c - 在c中填充二叉树函数

转载 作者:太空宇宙 更新时间:2023-11-04 08:26:48 25 4
gpt4 key购买 nike

我在使用此功能向我的树添加数据时遇到问题。我正在使用代码块,当我运行我的程序时,它会给我 Windows 错误框

#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>

struct arb{
int data;
struct arb*FG;
struct arb*FD;
};

void remplit(struct arb*r,int i)
{
if (r==NULL)
{
r=malloc(sizeof(struct arb));
r->data=i;
r->FD=NULL;
r->FG=NULL;
}
else
{
if (i>(r->data))
{
remplit(r->FD,i);
}
else
{
remplit(r->FG,i);
}
}
}

struct arb * test=NULL;

int main()
{
remplit(test,5);
printf("%d",test->data);
return 0;
}

最佳答案

您正在按值而不是名称传递指针。

remplit(test,5);

这会将 testvalue 发送到 remplit

r=malloc(sizeof(struct arb));

这将局部变量 r 指向已分配的内存。这不会影响 maintest 的值。

printf("%d",test->data);

test 仍然是 NULL,您尝试取消引用它会导致段错误。

关于c - 在c中填充二叉树函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30129626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com