2016-06-03 6 views
1

Ich suchte herum, aber es scheint keine Antworten für mich, also entschied ich mich hier zu fragen. Also habe ich valgrind verwendet, um mein Programm zu überprüfen, hier ist das ErgebnisC++ Valgrind Mehr Alloks als frei mit keine Lecks

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

Ist das ein Leck? Wenn ja, was könnte der Grund sein?

Antwort

0

Es ist kein echtes Leck, dass die 30 zusätzlichen Blöcke, die zugewiesen wurden, noch erreichbar sind. Es scheint, dass Sie einige Strukturen am Ende des Programmlaufs nicht freigeben konnten. Beachten Sie, dass die Laufzeitbibliotheken manchmal einige zugewiesene Objekte am Ende zurücklassen, aber dies fühlt sich nicht wie einer dieser Fälle an.

0

Kein Leck, es bedeutet nur, dass einige Speicherblöcke bei Beendigung noch erreichbar sind. Zur Suche nach echten Speicherlecks zu buchen „endgültig verloren“ und „indirekt verloren“

Sehen Sie diesen Beitrag: Still Reachable Leak detected by Valgrind

+0

Wurde Ihr quesiton beantworten? –