我正在尝试编写简单的推送功能,一切都很好,直到运行时,执行的代码崩溃。谁能解释一下原因吗?
#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/