才发现VC中也可以检测内存泄漏

#include <stdio.h>


#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>

#ifdef __cplusplus
#ifdef DEBUG_NEW
#undef DEBUG_NEW
#endif
#define DEBUG_NEW new(_NORMAL_BLOCK, __FILE__, __LINE__)
#define new DEBUG_NEW
#endif


int main(int argc, char* argv[])
{
	int *a = (int*)malloc(90);
	int *b = new int[10];

	_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );

	//_CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_DEBUG );

	//_CrtDumpMemoryLeaks();
	return 0;
}





像这个程序一样,在文件前面加这样的代码就可以了
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>

#ifdef __cplusplus
#ifdef DEBUG_NEW
#undef DEBUG_NEW
#endif
#define DEBUG_NEW new(_NORMAL_BLOCK, __FILE__, __LINE__)
#define new DEBUG_NEW
#endif

你可能感兴趣的:(C++,c,C#,vc++)