Debug_New.h 사용예

By | 2014년 6월 3일
#if !defined(_Debug_New_Defined_)
#define _Debug_New_Defined_

#if defined(_DEBUG)
#include <crtdbg.h>

static class CRT_MEMORY_CHECK
{
public:
    CRT_MEMORY_CHECK()
	{
		_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
	}
} _crt_momory_chekc;

void* operator new(size_t size, const char* filename, int line)
{
	printf("operator new() calles\n");
	printf("%s(%d)\n",filename, line);
	return ::operator new(size, _NORMAL_BLOCK, filename, line);
}

#define THIS_FILE __FILE__
#define DEBUG_NEW new(THIS_FILE, __LINE__)

#endif
#endif
////////////////

#include "stdafx.h"
#include "Debug_New.h"

#if defined(_DEBUG)
#define new DEBUG_NEW
#endif

#define DEBUG //주석처리하면 scanf 실행되지 않음
void main()
{
    int* p = new int();
	*p=1;
	printf("%i\n",*p);
	delete p;

#ifdef DEBUG
	//cmd
	char c;
	scanf("%c",&c);
#endif
}

Debug_New

Category: C++