반응형

BLOG main image



_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);

//일단 이렇게 해놓으면 메모리가 센다는 것만 알수있는게 대부분이고 자세한 중단점을 얻으려면 예상되는 곳에 이것을 작성해야한다


_CrtSetBreakAlloc( 생성 번째 번호 );  //으로 세는 번호를 써서 해당 지점을 잡는다









복사http://blog.naver.com/jungwan82/20080829101




msdn에 보면

 

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

 

위와 같이 정의하고 포함한 후에  프로그램의 종료 지점에서 _CrtDumpMemoryLeaks();  함수를 실행하면 메모리 릭이 발생한 지점을 알려준다고 나와있습니다. 또한 종료지점이 여러군데라서 _CrtDumpMemoryLeaks();를 사용하기가 곤란할 경우에는 프로그램의 시작 지점에 _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); 함수를 실행하는 것으로 대체할 수 있다고 합니다.

 

그런데 종료지점에도 _CrtDumpMemoryLeaks() 함수를 실행하고 시작지점에도 _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ) 함수를 실행하면 어떻게 될까요?

 

발생하지도 않은 메모리 릭을 보고합니다. 사람 고생시키는 경우입니다.

반응형

+ Recent posts