gpt4 book ai didi

c - 段错误——无法理解错误的原因

转载 作者:行者123 更新时间:2023-11-30 20:07:32 25 4
gpt4 key购买 nike

我不明白这里段错误的原因。代码是:

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

void add(int a,struct node *lista)
{
struct node *p;
p=(struct node*)malloc(sizeof(struct node*));

p->data=a;
p->next=NULL;

while(lista->next!=NULL) <--- The segmentation fault is here.
lista=lista->next;
lista->next=p;

return lista;

}

int main(void)
{
struct node *list=NULL;
list_print(list);

list=node123();
list_print(list);

add(7, &list);
list_print(list);

return 0;
}

将新节点添加到列表末尾的添加功能在 friend 的计算机和设置上完美地工作。我遇到段错误。我认为问题在于 lista->next 表达式,但我不明白为什么。有什么想法吗?

最佳答案

void add(int a,struct node *lista)...第二个参数是结构节点指针。

struct node *list=NULL; -- list 是一个结构体节点指针。

add(7, &list); -- &list 是一个结构体节点 **;这是不正确的,可能会导致 add() 的 `while(lista->next!=NULL) 取消引用失败。

关于c - 段错误——无法理解错误的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12280642/

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