错误,链表使用C编程
Error, linked lists using C programming
我正在尝试编写简单的推送功能,一切正常,直到 运行 时间,执行的代码崩溃。谁能说清楚原因好吗?
#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
导致未定义的行为。
我正在尝试编写简单的推送功能,一切正常,直到 运行 时间,执行的代码崩溃。谁能说清楚原因好吗?
#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
导致未定义的行为。