模仿的,段错误,求解
#include <stdio.h>
#include <malloc.h>
struct stu{
char name[10];
int num;
int garde;
struct stu *next;
};
struct stu *mark()
{
struct stu *head;
struct stu *p1,*p2;
int n=0;
head=NULL;
p1=p2=(struct stu*)malloc(sizeof(struct stu));
scanf_s("%d,%d",p1->num,&p1->garde);
while(p1->num!=0)
{
n++;
if(n==1)
{
head=p1;
}
else{
p2->next=p1;
}
p2=p1;
p1=(struct stu*)malloc(sizeof(struct stu));
scanf_s("%d,%d",p1->num,&p1->garde);
}
p2->next=NULL;
return head;
}
int main()
{
struct stu *p;
p=mark();
while(p!=0)
{
printf("%d,%d\n",p->num,p->garde);
p=p->next;
}
return 0;
}