typedef struct date
{
int year;
int month;
int day;
}DATE;
//姓名、性别、民族、出生日期、班级、地址、手机号码、宿舍
typedef struct student
{
char xm[20];
char xb[10];
char mz[15];
DATE csrq;
char bj[20];
char dz[50];
char sj[15];
char ss[14];
struct student *next;
}STUDENT;
这个是结构体
STUDENT* TianJia(STUDENT* SL)
{
STUDENT* pNew;
pNew = (STUDENT*)malloc(sizeof(STUDENT));
int year, month, day;
DATE cs = { 1976,1,15 };
char xm[20], mz[20], bj[20], dz[50], sj[15], ss[50];
char xb[10];
printf("请输入要添加的学生信息:\n");
printf("姓名:");
gets(xm);
strcpy(pNew->xm, xm);
printf("性别:");
gets(xb);
strcpy(pNew->xb, xb);
printf("民族:");
gets(mz);
strcpy(pNew->mz, mz);
printf("出生日期(year-month-day):");
scanf("%d-%d-%d", &year, &month, &day);
pNew->csrq.year = year; pNew->csrq.month = month; pNew->csrq.day = day;
getchar();//吸收所按的回车键
printf("班级:");
gets(bj);
strcpy(pNew->bj, bj);
printf("地址:");
gets(dz);
strcpy(pNew->dz, dz);
printf("手机:");
gets(sj);
strcpy(pNew->sj, sj);
printf("宿舍:");
gets(ss);
strcpy(pNew->ss, ss);
pNew->next = NULL;
SL = tianjiaxuesheng(SL, pNew);
//printf("TianJia-SL:%s\n",SL->bj);
return;
}
void LiuLan(STUDENT* SL)
{
printf("***学生信息浏览***\n");
printf("序号\t姓名\t性别\t民族\t出生日期\t班级\t\t地址\t\t手机\t\t宿舍\n");
STUDENT* p1, * p2;
p1 = SL;
int i = 1;
while (p1)
{
printf("%d\t%s\t%s\t%s\t%d-%d-%d\t%s\t%s\t%s\t%s\n",i++,p1->xm, p1->xb, p1->mz, p1->csrq.year, p1->csrq.month, p1->csrq.day, p1->bj, p1->dz, p1->sj, p1->ss);
p1 = p1->next;
}
return;
}
这个是部分代码,添加和浏览操作。我想问一下,我这个学生信息管理系统,在添加信息后,浏览信息,会报错,p1指向0x48。这个是什么意思,怎么解决呀
p1指向0x48