数据结构链表的一个小问题
编译没错但是运行的时候程序都会出错
#include<stdio.h>
#include<malloc.h>
struct linklist
{
int data;
struct linklist *next;
};
linklist* init(void)
{
linklist *h;
linklist *s,*r;
int x;
h=NULL;
scanf("%d",&x);
while(x!=-1)
{
s=(linklist*)malloc(sizeof(linklist));
s->data=x;
if(h==NULL)
{h=s;}
else
r->next=s;
r=s;
scanf("%d",&x);
}
return h;
}
int main()
{
linklist *l;
linklist *h;
l=init();
h->next=l; //***
return 0;
}
出错语句是***标记的那个语句,想不明白为什么不能运行,因为上面有一句r->next=s都可以顺利运行的
[解决办法]
h都没初始化,你h->next有意义么?
[解决办法]
r->next=s;
这句也是一样。