链表问题

[复制链接]
1647|3
 楼主| gxgclg 发表于 2012-6-20 23:25 | 显示全部楼层 |阅读模式
bool Addstu(STU *head)//传入头指针,头指针不为空
{
int numofaddstu;
STU *currentp;
currentp=head;
STU *newp;
while (currentp->next)
{
currentp = currentp->next;
}
cout<<"请输入添加学生人数:"<<endl;
cin>>numofaddstu;
for (int i = 0;i<numofaddstu;i++)
{
newp = new STU;
if (newp == NULL)
{
cout<<"内存分配失败!"<<endl;
exit(0);
}
cout<<"输入第"<<i+1<<"个学生信息"<<endl;
cin>>newp->name>>newp->id>>newp->mathscore>>newp->engscore>>newp->mathscore;
currentp->next = newp;
currentp=newp;
}
currentp->next = NULL;
if (Savedata(head))
{
cout<<"保存成功"<<endl;
return true;
}
else
return false;
}


程序运行到输入操作完成之后就崩溃掉了。输入以后的操作都无法执行。请问是哪里弄错了
火箭球迷 发表于 2012-6-20 23:35 | 显示全部楼层
代码好象没什么问题,
head是空指针的话会导致出错
建议你自己用单步调试,看看
yybj 发表于 2012-6-20 23:46 | 显示全部楼层
cin>>newp->name>>newp->id>>newp->mathscore>>newp->engscore>>newp->mathscore;
看一下STU的这些成员是否有问题
字符串不要用char* 之类的指针,要用字符串数组或者string。
另外如果是数组看一下分配定空间是否足够,不要一个char name[10],然后你输一长串。
xsgy123 发表于 2012-6-20 23:56 | 显示全部楼层
VC6为例
用F9设断点,就是断点的地方就是程序左边有个红圆点
用F5运行程序,这样当程序运行到断点的地方就会停下来,这时你就可以通过在WATCH WINDOWS里输入变量名
来看程序运行到这里各个变量的值
用F10或者F11运行下一行看变量的值的变化是否符合当成程序设计的样子,
F10和F11区别在于F10会跳过函数,F11这进入函数
也可以继续用F5让程序运行到下一个断点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

177

主题

1653

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部