VC下查找内存泄露
时间:2010-08-21 来源:葡萄守望者
1. 使编译器自动指出泄露的内存被分配的代码在哪里。
在cpp文件中包含文件的后面
#define new DEBUG_NEW
DEBUG_NEW展开就是
#define DEBUG_NEW new(THIS_FILE, __LINE__)
很明显,有了这个定义,Output窗口在检测内存泄露的时候就可以指出内存是在哪里被new的。MFC使用的就是这个方法,但是这个方法有一个缺点,就是带参数的new没法使用了,比如placement new。这里不知道有没有解决办法。
在 这里,可以多提一点,c++处理new的方式很巧妙,我们可以以任意参数重载operator new函数,但是所有的new都必须返回void*,并指定其为一块内存地址,然后编译器会在这块内存上调用所new对象的构造函数。比 如,placement new 只有一个参数void*, 它所做的只是简单的返回这个参数而已.
相关阅读 更多 +