C++编程遇到内存报错

来源:百度知道 编辑:UC知道 时间:2024/06/30 19:42:09
我用在VC++6.0环境下,用C++写了一个基于单链表的学生管理系统,其中有一个功能是用冒泡排序算法对学生的年龄排序后输出,我编译的时候没有错误,但是生成exe文件的时候,我输入数据测试,发现执行排序操作的时候内存报错,不能read,请问大家怎么解决?下面是我排序算法的代码:
void sort(Node *h)
{
Node *p=h,*q,*t,*m,*l;
if (p->link->link==NULL||p->link==NULL)
{return;}
for (;q->link!=NULL;q=q->link)
{
l=p;
for(q=p->link;q->link!=NULL;q=q->link)
{
t=q->link;
m=t->link;
if (q->stu.age>t->stu.age)
{
if (m==NULL)
{
l->link=t;
t->link=q;
q->link=NULL;
}
else
{
l->link=t;
t->link=q;
q->link=m;
}
}
l=l->link;
}
}
}

把for循环结束条件改为q!=NULL

如果还有问题,你应该检查链表的建立等其他地方是否有问题

有时候我的碰到这样的问题,就是在程序退出的时候会出现,感觉是有动态申请的空间没有释放,你是不是用的dev c++做的?反正我经常碰见这样的事情,检查没有发现任何问题,你换一个编译环境试试··