2012-11-24 19:54
⁄ 工业·编程
⁄ 共 648字
在做C++开发过程中,忽略了很重要的问题:自己申请的内存没有主动去释放。这样造成大量内存的泄漏,问题比较严重。如通过new 来申请的内存空间,必须手动去做delete 释放操作。
>>>C++内存泄漏检查心得
1、成员变量为指针对象,且在主函数中,为成员变量赋值后,不再做其他操作。可以在析构函数中做删除操作。 实例如下:CTest.cpp CTest::CTest():m_t(new CTestA())//初始化列表实现 {...
内存泄漏阅读全文
2012-11-24 19:47
⁄ 工业·编程
⁄ 共 4713字
本人在参与一个大型Win32软件项目时,对整个项目进行了内存泄漏方面的检查,随着泄漏代码的一个个发现,发现许多的泄漏都具有某些共同性,于是乎总结了一些常见泄漏代码,发给同事们看了。希望能提醒下大家,但后来在项目的二期、三期版本出现的泄漏发现和以前的一些问题几乎是同一性质的,回过来看以前写的一些笔记发现都概括了(当时觉得自己是有那么两把刷子,^_^)。于是想到也许很多编程同志也会碰到同样...
内存泄漏, 心得阅读全文
2012-11-24 19:26
⁄ 工业·编程
⁄ 共 4979字
一、故障或失误概况
局端MCU项目中CSS(Conference Schedule System)、NMS(NetWork Management System)模块自2.03版本起就有内存泄露的问题,开发 NGN版本时也花过大量的精力来争取解决这个问题,虽然也修正了一些内存泄漏,但最终检测工具表面现象显示剩下的内存泄露都是所使用的开发库的代码产生的,于是也就大意的认为是所使用的ACE/TAO库本身有内存泄漏,于是无果而终,使这两个模块的内存泄漏问题一直...
c++, 内存泄漏, 总结阅读全文
2012-11-23 00:15
⁄ 工业·编程
⁄ 共 5096字
new/delete, array new/arrray delete匹配 case 1: 在类的构造函数与析构函数中没有匹配地调用 new/delete!
解决方法:检查构造函数,在出现new的情况下,按相反的顺序在析构函数中匹配添加delete! 这里有两个意思: 1〉new与delete匹配,array new/array delete匹配; 2〉出现在前面的new要比出现在后面的new后匹配各自的delete; 比如: 构造函数: m...
内存泄漏阅读全文
2012-11-20 19:50
⁄ 工业·编程
⁄ 共 726字
C/C++软件工程实现中,内存泄露可能是一个让众多程序员懊恼的问题. 内存泄露问题是如此普遍并且被认为是难以解决,标明内存泄露不是一个理论上的问题, 而是一个实践中的问题. 假若它是一个理论上的问题, 那么它肯定早就从理论上加以解决而不再是一个问题.
软件工程实践中, 应该努力采用良好的设计策略和代码习惯来尽量避免内存泄露; 说避免并非是逃避困难而是规避内存泄漏遍及代码导致不可控的风险和测试阶段导致的疲于奔命.
下...
内存泄漏阅读全文
2012-11-20 16:48
⁄ 工业·编程
⁄ 共 310字
内存泄露是因为new的空间,没有及时delete掉,导致程序运行所需要的内存越来越大。
可能是因为以下原因导致未delete掉
1.真正的没有delete,程序中只有new忘记delete了,这个比较明显,目前未在这方面犯过错误。
2.new的变量需要放到一个list中,在其他地方需要访问该list中的该变量的情况下,因为有多个地方去new变量,有一次是因为某处new的变量未insert到该list中,导致了内存泄露。
3.程序逻辑比较多的情况下,new的变量需...
内存泄漏阅读全文
2012-11-19 22:38
⁄ 工业·编程
⁄ 共 426字
1.new,malloc后没有delete,free 2.创建内核对象(比如CreateFile,CreateMutex,CreateThread),后没有释放内核对象句柄. 3.创建内存映射文件,CreateFileMapping,MapViewOfFile后没有CloseHandle(),UnMapviewofFile 4.创建GDI对象后,比如LoadIcon,LoadImage,CreateImageList等等,没有Destroy掉 5.创建DC后,比如GetDC(), 没有释放DC句柄
6.保留虚拟地址空间 VirtualAlloc(),然后提交物理存储器后,没有释放掉
注...
内存泄漏阅读全文
2012-08-10 21:38
⁄ 工业·编程
⁄ 共 4576字
首先我们需要知道程序有没有内存泄露,然后定位到底是哪行代码出现内存泄露了,这样才能将其修复。最简单的方法当然是借助于专业的检测工具,比较有名如BoundsCheck,功能非常强大,相信做C++开发的人都离不开它。此外就是不使用任何工具,而是自己来实现对内存泄露的监控,分如下两种情况:
一. 在 MFC 中检测内存泄漏
假如是用MFC的程序的话,很简单。默认的就有内存泄露检测的功能。
&...
c++, 内存泄漏阅读全文