主题:求助,链表的问题,帮我看看咋回事啊
CityList.exe 中的 0x63b56af2 (msvcr90d.dll) 处未处理的异常: 0xC0000005: 写入位置 0x00000000 时发生访问冲突
为什么会这样?
struct LinkList *create()
{
struct LinkList *head;
struct LinkList *p1,*p2;
n=0;
p1=p2=(struct LinkList *) malloc (len);
scanf("%s,%d,%d",&p1->cityname,&p1->locx,&p1->locy);
head=NULL;
while(p1->locx!=-1)
{
n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct LinkList*)malloc(len);
scanf("%s,%d,%d",&p1->cityname,&p1->locx,&p1->locy);
}
p2->next=NULL;
return(head);
}
void main()
{
struct LinkList *head,*add;
int m=0,x,y,k;
float D;
char city[40];
char nam[40];
Welcome();
scanf("%d",m);
while(m!=1)
{
printf("请先输入城市信息\n");
Welcome();
scanf("%d",m);
}
if(m==1)
{
head=create();//就是运行到这里就出现上面的错误
}
为什么会这样?
struct LinkList *create()
{
struct LinkList *head;
struct LinkList *p1,*p2;
n=0;
p1=p2=(struct LinkList *) malloc (len);
scanf("%s,%d,%d",&p1->cityname,&p1->locx,&p1->locy);
head=NULL;
while(p1->locx!=-1)
{
n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct LinkList*)malloc(len);
scanf("%s,%d,%d",&p1->cityname,&p1->locx,&p1->locy);
}
p2->next=NULL;
return(head);
}
void main()
{
struct LinkList *head,*add;
int m=0,x,y,k;
float D;
char city[40];
char nam[40];
Welcome();
scanf("%d",m);
while(m!=1)
{
printf("请先输入城市信息\n");
Welcome();
scanf("%d",m);
}
if(m==1)
{
head=create();//就是运行到这里就出现上面的错误
}