MFC程序退出时内存报错的解决办法

追踪指针发现部分析构函数中的代码没有执行到,程序就直接报错了,仔细的查找后发现错误是由于delete了一个已经在这之前delete过的指针对象而导致的

当时的代码是这样的:

构造函数中:

m_pLastPageInfo = new PageInfo;//因为在程序中直接指向已存在的PageInfo数组中的某一员,所以析构函数中不需要delete这两个指针

m_pCurrentPageInfo = new PageInfo;

for(int i = 0;i < MAX_PAGE;i++)

m_pPageInfo[i] = new PageInfo;

析构函数中:

delete m_pCurrentPageInfo;//在这里加断点却没有到这里,

delete m_pLastPageInfo;

for (int i = 0; i < MAX_PAGE; i++)

{

delete m_pPageInfo[i];

}

因此在for循环中执行到某个位置时时必然会出错(但是断点却不会执行到这里来就直接报错,不知道为什么)

解决办法:

注释掉delete m_pCurrentPageInfo;和delete m_pLastPageInfo;两行就可以了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值