2016-06-03 2 views
1

Я искал, но ответов на меня нет, поэтому я решил задать здесь. Поэтому я использовал valgrind для проверки своей программы, вот результатC++ valgrind Больше выделяет, чем frees без утечек

==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

ли это ответить на ваш quesiton? –