我想写一个学生考勤管理系统,在其中我使用了链表和文件,在写读取函数的时候测试出错了,读取不成功,弹出了如下窗口
之后按照我在网上找到的解决方法试着把debug模式改成release模式,虽然不会报错但是程序直接中止了
struct student *load(){
FILE *wenjian;
struct student *head,*p,*q;
head=p=(struct student *)malloc(sizeof(struct student));
if((wenjian=fopen("档案.txt","r"))==NULL) //用r(只读)的方式打开文件
{
printf("文件打开失败\n");
exit(0);
}
while(feof(wenjian)==0) //feof判断文件是否结束
{
q=(struct student *)malloc(sizeof(struct student)); //新建一个节点
fscanf(wenjian,"%s %d %d %d %s %s",q->name,&q->yue,&q->ri,&q->ke,q->class_name,q->type);//把从文件中读取到的数据,写入新建的节点中
p->next=q;
p=q;
}
fclose(wenjian);
printf("数据读取成功!\n");
p->next=NULL; //给链表封口.
return head;
}
求告知如何解决
该回答引用ChatGPT
参考下面的解释
该错误通常是由于指针问题导致的。建议检查链表指针是否正确,并确保链表是否正确分配内存。