2014-08-31 3 views
2

의도적으로 메모리 누수를 작성하기 위해 다음 코드를 작성했습니다.왜 메모리 누수에 세 개의 메모리 주소 만 표시됩니까?

#include <windows.h> 

int main(int argc, char* argv[]) 
{ 
    while(1) 
    { 
     char *ch1 = new char[10]; 
     char *ch2 = new char[5]; 
     char *ch3 = new char[2]; 
     Sleep(5); 
    } 
    return 0; 
} 

나는 LeakDiag를 사용하여 로그를 촬영하고 LDGrapher를 사용하여 그래프를 다음 수 있도록했다.

내 질문에 왜 누설 그래프에 3 개의 주소 만 표시됩니까? while(1)에 새로운 포인터를 작성하는 중이므로 많은 주소에서 메모리를 누출하고 있습니까? WINDOWS.H의

enter image description here

+0

아마도 누수가 호출 사이트에서 집계를 볼 수있는 그래프를 그리기? –

+0

@KerrekSB 죄송합니다. 이해하지 못했습니다. –

+4

코드에서 누수가있는 곳은 3 곳입니다. 그 3 곳을 봅니다. 그것들은 데이터 주소가 아닌 * 코드 * 주소입니다. 이들은/ZI 컴파일 옵션 때문에 너무 많이 다릅니다. –

답변

0

포함은 리눅스에 비해 이 * 창에서 메모리 managament 훨씬 똑똑 "내가 u는 창 상자에서이 작업을 실행 r에 가정".

리눅스에서 같은 프로그램을 실행 시도하고 differece