新微赢技术网

标题: [求助]有些什么原因会造成这个错误? [打印本页]

作者: 踏浪    时间: 2009-11-3 01:50
标题: [求助]有些什么原因会造成这个错误?
我在编译运行中突然就弹出这个提示,我真的不知道该怎么改了,有哪些情况会造成这种错误啊?


附件: 只有本站会员才能下载或查看附件,请您 登录 或 注册
作者: ωǒ↘倫↙    时间: 2009-11-3 01:50
我说一下可能的原因:分配内存失败或没有释放内存,指针没有正确初始化就使用该指针。
楼下继续补充~~~~~~~~~~~~~~
作者: 苍穹    时间: 2009-11-3 01:50
谢谢楼上的
我遇到的这个问题应该不是楼上说的原因造成的
作者: $星辰    时间: 2009-11-3 01:50
你这样不让开病,而要叫人家给你开处方实在是太难了,呵呵,开玩笑的
作者: 日-出    时间: 2009-11-3 01:50
楼上的意思是没拿程序出来看?
调用这个函数的时候出了这个错:
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;
}
作者: 玉儿    时间: 2009-11-3 01:50
我已经知道哪错了,现在已经能正常运行了!
Fstu=new student[last];
这里少分配了一个
哎,就这一个浪费了我几个小时啊!!!!!!!!
作者: liu    时间: 2009-11-3 01:50
你这里已经规定是7了为什么还要fin>>j;?
作者: 阿俊    时间: 2009-11-3 01:50
应该是调试过程中内存分配出现的问题.
在涉及调用内存空间的地方多检查.
作者: ┈ㄝai〾噯儿    时间: 2009-11-3 01:50
以下是引用wfpb在2006-5-9 1:59:00的发言:

你这里已经规定是7了为什么还要fin>>j;?
什么?没有规定是7啊~
作者: 爱你爱到西元    时间: 2009-11-3 01:50
fin>>s1>>s2>>s3>>s4>>s5>>s6>>s7;
你这不是7吗?




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2