首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

CrtDbg无法检测到的内存泄露,该如何解决

2012-04-10 
CrtDbg无法检测到的内存泄露在VC2010中编译如下代码:C/C++ code#include crtdbg.hint main(){// 设置标

CrtDbg无法检测到的内存泄露
在VC2010中编译如下代码:

C/C++ code
#include <crtdbg.h>int main(){    // 设置标志后, 编译器会自动在任何退出的地方调用_CrtDumpMemoryLeaks();输出内存泄漏报告    _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );    int *p = new int[10];    delete p;//去掉这一句可以检测到    return 0;}


以上的代码无法检测到内存泄露,其实我不确定到底是有内存泄露,没有检测到,还是根本没有发生内存泄露?

或者说对于基本数据类型,delete和delete []的作用是一样的?

[解决办法]
对于基本数据类型,delete和delete []的作用是一样的.
[解决办法]
探讨
对于基本数据类型,delete和delete []的作用是一样的.

[解决办法]
这个属于分配和释放api不匹配,undefined behavior,并不一定会泄漏。
[解决办法]
标准也规定这样的行为是undefined behavior的。所以按规矩来。
[解决办法]
区别 只是是否全部调用析构函数.

想避免这种东西. 只需要自己写一个池即可.

自己malloc 自己构造 自己析构.

热点排行