Bonjour !
Patrick Dupré a écrit :
> definitely lost: 16 bytes in 1 blocks
Ce n'est pas un vrai problème. Valgrind te dit seulement que, quand le
processus s'est terminé, il y avait 16 octets alloués qui n'ont pas été
libérés. Tu peux corriger ça en ajoutant
free(str1);
à la fin de main().
Mais ce n'est pas très utile : quand le processus se termine, le noyau
va de toutes façons libérer toutes les ressources qu'il consomme. Les
libérer explicitement à la fin de main() ne sert à rien.
Une fuite mémoire est gênante quand tu alloues dans une boucle, que tu
perds le pointeur (que tu ne libères donc pas), puis tu re-alloues au
tour de boucle suivant... Dans ce cas la consommation mémoire du
processus augmente indéfiniment, et c'est un vrai problème.
À+,
Edgar.