请求大神们看看这个程序哪里出错了
程序:创建一个链表,输入信息,打印。
#include<stdio.h>
#include<malloc.h>
#include<string.h>
struct AA
{
int num;
char sex;
char name[20];
struct AA *next;
};
struct AA *creatlist(int count)
{
struct AA *head=NULL,*tmp,*p;
char sex1,*name1=NULL;
int n=0,num1;
for(n=0;n<count;n++)
{
tmp=(struct AA *)malloc(sizeof(struct AA));
scanf("%d",&num1);
tmp->num=num1;
scanf("%c",sex1);
tmp->sex=sex1;
gets(name1);
strcpy(tmp->name,name1);
tmp->next=NULL;
if(head==NULL)
{
head=p=tmp;
}
else
{
p->next=tmp;
p=p->next;
}
}
p=head;
while(p!=NULL)
{
printf("%d%c%s",p->num,p->sex,p->name);
p=p->next;
}
return 0;
}
void main()
{
int count;
scanf("%d",&count);
creatlist(count);
}