2012-12-08 2 views
4

Im obtenir ce résultat de Valgrind:résultats Valgrind propre mais avec plus allocs que Libère

==24810== HEAP SUMMARY: 
    ==24810==  in use at exit: 0 bytes in 0 blocks 
    ==24810== total heap usage: 9 allocs, 6 frees, 0 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: 0 bytes in 0 blocks 
    ==24810==   suppressed: 0 bytes in 0 blocks 

Il dit pas de mémoire a été divulgué. Cela me semble être un bon résultat. Mais, qu'en est-il de ces 9 allocs, 6 libère? On dirait que je n'ai pas libéré de mémoire quelque part. J'ai vérifié le code, et il y a 3 pointeurs const globaux. Peut-être qu'ils n'étaient pas considérés comme des erreurs mais imprimés comme non libres?

Dois-je m'inquiéter à ce sujet ou devrais-je considérer le code sans gêne? Merci à tous. .... Juste essayer de comprendre tout ce tracas C ANSI avec des pointeurs et des allocations de mémoire :)))

maxime

+1

Il est dit que l'utilisation totale du tas est '0 octets alloués', pourraient-ils être des allocations vides? Pouvez-vous poster du code? – imreal

+0

Est-ce que valgrind compte 'realloc's? –

+0

@DanielFischer C'est le cas. –

Répondre

0

sur le site valgrind http://valgrind.org/docs/manual/quick-start.html#quick-start.interpret

"définitivement perdu": votre programme est fuite de mémoire - réparez-le! "Probablement perdu": votre programme perd de la mémoire, sauf si vous faites choses amusantes avec des pointeurs (comme les déplacer pour pointer vers le milieu d'un bloc de tas).

Donc, pour votre cas, votre programme devrait être bon.

Questions connexes