gpt4 book ai didi

c - 错误,使用C编程的链表

转载 作者:行者123 更新时间:2023-11-30 19:36:13 25 4
gpt4 key购买 nike

我正在尝试编写简单的推送功能,一切都很好,直到运行时,执行的代码崩溃。谁能解释一下原因吗?

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

typedef struct list{
int order;
struct list *next;

}list;

void push(struct list **arg,int i);

int main()
{
struct list **ptr=NULL;

for(int i=0;i<10;++i){
push(ptr,i);
}

return 0;
}

void push(struct list **arg,int i){

struct list *temp;
temp= malloc(sizeof(list));

temp->order=i;

temp->next=*arg;

*arg=temp;

}

最佳答案

list *ptr=NULL;
^^^
for(int i=0;i<10;++i){
push( &ptr,i);
^^^^
}

否则如果这样声明

struct list **ptr=NULL;

然后这个解除引用

*ptr

导致未定义的行为。

关于c - 错误,使用C编程的链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41433277/

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