2016-06-03 2 views
1

나는 수색을 해봤지만 나에게 답이없는 것 같아서 여기서 물어보기로했다. 그래서 valgrind를 사용하여 내 프로그램을 확인했습니다. 결과는 다음과 같습니다.C++ valgrind 누수가없는 자유보다 더 많은 allocs

==24810== HEAP SUMMARY: 
==24810==  in use at exit: 1,478 bytes in 30 blocks 
==24810== total heap usage: 50 allocs, 20 frees, 43078 bytes allocated 
==24810== 
==24810== LEAK SUMMARY: 
==24810== definitely lost: 0 bytes in 0 blocks 
==24810== indirectly lost: 0 bytes in 0 blocks 
==24810==  possibly lost: 0 bytes in 0 blocks 
==24810== still reachable: 1,478 bytes in 30 blocks 
==24810==   suppressed: 0 bytes in 0 blocks 

누수가 되었습니까? 그렇다면 이유가 무엇일까요?

답변

0

할당 된 30 개의 여분의 청크가 여전히 도달 할 수 있다는 점에서 진정한 누수는 아닙니다. 프로그램 실행이 끝나면 구조를 해제하지 않은 것 같습니다. 런타임 라이브러리는 때로는 할당 된 객체 몇 개를 끝까지 남겨 둡니다. 그러나이 경우 중 하나처럼 느껴지지 않습니다.

0

누설이 아니라 단지 메모리 블록이 종료 될 때까지 계속 도달 할 수 있다는 것을 의미합니다. Still Reachable Leak detected by Valgrind

+0

이이 후 질문에 대답 했 : 실제 메모리 누수를 찾으려면 "확실히 손실"과 "간접적 손실"보고

이 게시물을 참조하십시오? –

관련 문제