用vs2012的编译器根据向导生成的代码,里面都会出现
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
这个的详细解释是什么呢,查看msdn解释如下:
在寻找内存泄漏的帮助。
在调试模式 (在 _DEBUG 符号定义) 时,DEBUG_NEW 记录其分配的每个对象的文件名和行号。 然后,那么,当您使用CMemoryState::DumpAllObjectsSince 成员函数时,每个对象随 DEBUG_NEW 显示为分配它的文件名和行号。
使用 DEBUG_NEW,插入以下指令到源文件中:
#define new DEBUG_NEW
一旦插入此指令,预处理器将插入 DEBUG_NEW ,无论在何处使用new和 MFC 执行方式。