1、野指针,你使用的指针指向未知区域
2、scanf函数输入整形、字符……的时候缺少了&
3、缓冲区溢出,也就是说你使用数组时不经意间越界了
暂时就想到了这三种常见情况
void TraverseList (DuLinkList &L) {
DuLinkList p=new DuNode()
p=L->next
while(p!=L){
printf (" ",p->data)
p=p->next}
}
这个你就是要遍历嘛,不需要new一个节点出来啊,何况你new了之后又不用:正确的应该是:
void TraverseList (DuLinkList &L){
if(!L)//空,就直接返回
return
DuLinkList p=L->next
while(p!=L)
{
printf (" ",p->data)
p=p->next
}
}
另外,你main函数里面:
DuLinkList myl
定义个指针又不初始化,好歹要赋个空指针吧:
DuLinkList myl = NULL
所以,代码的问题在于,一个未赋初值的指针myl,你一进TraverseList 就想获取他的next指针:p=L->next自然会报错了。
那就是你的GetAnnexbNALU函数发出来的异常,设个断点进去看看为什么报错了?是不是读写的长度有问题?不行的话,看看能否把别的 *** 作屏蔽掉,就只运行有问题的地方,以测试是不是真的有问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)