链表队列析构函数出现未处理异常

ka7754 2014-05-27 11:18:05
PointQueue::~PointQueue()
{
quenode *p;
p=front->next;
if(p!=rear)
{
front->next=p->next;
delete p;
p=front->next;
}
delete rear;
delete front;
rear=front=NULL;
size=0;
}
这是我做的链表队列PointQueue的析构函数,程序走到if语句第一句front->next=p->next;时出现下面这个错误提示
“XXX.exe中的0x003a1f43处有未经处理的异常:0xC0000005:读取位置0x00000008时发生访问冲突”
之前使用while语句进行删除结点的晚上有说“delete行为触发调用析构函数,完成连锁析构,类似递归,之前调用while循环就错了。”但是不管用if还是while都是一样的错误
...全文
99 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
罗博士 2014-05-27
  • 打赏
  • 举报
回复
应该是使用了空指针,要看看所有相关代码的上下文。
menzi11 2014-05-27
  • 打赏
  • 举报
回复
典型的链表next指针指飞了.
第1章 C++面向对象程序设计  1.1 抽象数据类型  1.2 封装  1.3 继承  1.4 指针   1.4.1 指针与数组   1.4.2 指针与复制函数   1.4.3 指针与函数   1.4.4 指针和引用变量   1.4.5 函数指针  1.5 多态性  1.6 C++和面向对象程序设计  1.7 标准模板库   1.7.1 容器   1.7.2 迭代器   1.7.3 算法   1.7.4 函数对象  1.8 标准模板库中的向量  1.9 数据结与面向对象编程  1.10 案例分:随机访问文件  1.11 习题  1.12 编程练习  参考书目 第2章 复杂度分  2.1 计算复杂度以及渐近复杂度  2.2 大O表示法  2.3 大O表示法的性质  2.4 Ω表示法与Θ表示法  2.5 可能存在的问题  2.6 复杂度示例  2.7 确定渐近复杂度示例  2.8 最好、平均和最坏情况  2.9 摊销复杂度(amortized complexity)  2.10 NP完整性  2.11 习题  参考书目 第3章 链表  3.1 单向链表   3.1.1 插入   3.1.2 删除   3.1.3 查找  3.2 双向链表  3.3 循环链表  3.4 跳跃链表(skip list)  3.5 自组织链表  3.6 稀疏表  3.7 标准模板库中的链表  3.8 小结  3.9 案例分:图书馆  3.10 习题  3.11 编程练习  参考书目 第4章 栈与队列  4.1 栈  4.2 队列  4.3 优先队列  4.4 标准模板库中的栈  4.5 标准模板库中的队列  4.6 标准模板库中的优先队列  4.7 标准模版库中的双端队列  4.8 案例分:迷宫问题  4.9 习题  4.10 编程练习  参考书目 第5章 递归 第6章 二叉树 第7章 多叉树 第8章 图 第9章 排序 第10章 散列 第11章 数据压缩 第12章 内存管理 第13章 字符串匹配 附录A 计算大O 附录B 标准模板库中的算法 附录C NP完整性

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧