C++ 메모리 누수 체크하기

C++ 메모리 누수 체크하기

C++에서 프로그래머가 예상치 못하게 메모리 누수를 체크 못하는 경우가 있다.

이럴 경우를 대비해서 메모리 누수 체크를 해보자.


#include <iostream>
#include <crtdbg.h> // _CrtDumpMemoryLeaks() 사용하기위해
#if _DEBUG
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)
#define malloc(s) _malloc_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)
#endif // 몇행에서 메모리 누수가 나는지 알려줌.

using namespace std;

int main()
{
	int *a = new int;
	_CrtDumpMemoryLeaks(); // 메모리 누수 체크

	return 0;
}

먼저 13행 메모리 누수 체크 기능을 사용하기 위해 crtdbg.h 파일을 include 하자.

만약 3~6행이 선언이 되어있지 않다면 몇행에서 오류가 나는지 안알려주고 몇번째 메모리 할당에서 오류가 나는지만 알려주게 된다.


일단 실행을 해보면(F5로 실행)



이렇게 몇번째 행에서 메모리 누수가 나는지와 몇바이트가 누수나오고 자세하게 나오게 된다.


실수를 대비해서 프로그램을 만들 때 메모리 누수 체크를 하자.



댓글

Designed by JB FACTORY