我说一下可能的原因:分配内存失败或没有释放内存,指针没有正确初始化就使用该指针。
楼下继续补充~~~~~~~~~~~~~~
楼上的意思是没拿程序出来看?
调用这个函数的时候出了这个错:
int List::InFile(){ //定义读文件
ifstream fin("学生管理.txt"); //打开文件
if(!fin){ //检查是否打开
cout<<"Can't open file!"<<endl;
return 1;
}
char s1[10],s2[10],s3[10],s4[10],s5[10],s6[10],s7[10];int j;
fin>>s1>>s2>>s3>>s4>>s5>>s6>>s7; //存入"The number of these students' message are:"
fin>>j; //顺序表长度
last=j-1;
student *Fstu;
Fstu=new student[last];
for(int i=0;i<j;i++){ //数据
fin>>Fstu[i].Num;
fin>>Fstu[i].ID;
fin>>Fstu[i].Name;
fin>>Fstu[i].Place;
fin>>Fstu[i].Date;
fin>>Fstu[i].Score;
}
cout<<"文件中的数据:"<<endl;
for(i=0;i<j;i++){
data[i].Num=Fstu[i].Num; //文件中的数据依次传给data
data[i].ID=Fstu[i].ID;
strcpy(data[i].Name,Fstu[i].Name);
strcpy(data[i].Place,Fstu[i].Place);
strcpy(data[i].Date,Fstu[i].Date);
data[i].Score=Fstu[i].Score;
cout<<Fstu[i];
}
delete []Fstu;
fin.close(); //关闭文件
return 0;
}
你这里已经规定是7了为什么还要fin>>j;?