打印

链表问题

[复制链接]
936|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

粉丝