这问题怎么解 请说明一下
#include"stdio.h"
#include"malloc.h"
typedef struct student
{int num;
float score;
struct student *link;
}stu;
stu *creat()
{stu *head;
stu *p1,*p2;
int n=0;
p1=p2=(stu *)malloc(sizeof(stu));
printf("input number and score:");
scanf("%d,%f, &p1->num1,&p1->score);
head=null;
while(p1->num!0)
{n=n+1;
if(n==1) head=p1;
else p2->link=p1;
p2=p1;
p1=(stu *)malloc(sizeof(stu));
scanf("%d,%f,&p1->num,&p1->score);
}
p2->link=null;
return(head);
}