LinJM 2014_05_23
解决内存泄漏问题
在VS2010的Debug模式下面,点击运行,然后退出,之后会在输出框里面出现内存泄漏信息(如下图所示)。
Analysis:主要是new了之后没有delete相应的变量,所以,很明显就是要在不使用时delete掉这个变量。不过,有个问题,如下图所示:
我代码修改位置如下所示:
我把红下划线部分注释掉就不会出现上面那个问题,后来讨论分析才发现pBim现在分配给了pAdjustmentLyInfo,二者现在指向同一个内存空间,当我delete掉pBim后pAdjustmentLyInfo也就不能使用了,这就出现了问题。因此,我就在外方,就在红下划线下面那个注释掉的一行中删除这个空间,这样就解决了内存泄漏问题。
转他人经验:
——————————————————————————————————————————————————
——————————————————————————————————————————————————
另外一个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出现地方如下:
本文地址:http://blog.csdn.net/linj_m/article/details/26703859
更多资源请关注 博客:LinJM-机器视觉 微博:林建民-机器视觉