捉虫记录:解决内存泄漏问题

LinJM   2014_05_23

解决内存泄漏问题

VS2010Debug模式下面,点击运行,然后退出,之后会在输出框里面出现内存泄漏信息(如下图所示)。

 

Analysis:主要是new了之后没有delete相应的变量,所以,很明显就是要在不使用时delete掉这个变量。不过,有个问题,如下图所示:

 

我代码修改位置如下所示:

 

我把红下划线部分注释掉就不会出现上面那个问题,后来讨论分析才发现pBim现在分配给了pAdjustmentLyInfo,二者现在指向同一个内存空间,当我deletepBimpAdjustmentLyInfo也就不能使用了,这就出现了问题。因此,我就在外方,就在红下划线下面那个注释掉的一行中删除这个空间,这样就解决了内存泄漏问题。


转他人经验:

——————————————————————————————————————————————————

 

——————————————————————————————————————————————————

另外一个bug

HEAP CORRUPTION DETECTED: after Normal block(#715) at 0x056B0040. CRT detected that the application wrote to memory after end of heap buffer.

这是典型的内存溢出错误,常在内存的delete处发生,而且一般在debug版本中可能出现,release版本中可能并不报错。出现这个错误的原因一般都是操作new申请的内存溢出,因为在c++中,如果用new分配一段内存,操作的时候改变了该部分的大小,在delete时就会出错。

本code出现地方如下:

原因是在程序的进行中pData的值大于了预分配的内存空间。


本文地址:http://blog.csdn.net/linj_m/article/details/26703859 

更多资源请关注 博客:LinJM-机器视觉 微博:林建民-机器视觉

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值