Bonjour à tous,
Je suis débutant en C++ et j'aurais une question extrêment vague : quelles sont les erreurs fréquentes de codage qui engendrent de grandes fuites de mémoire ?
Je m'explique : je suis en train de créer un petit lecteur audio en C++ / SDL (je n'en suis qu'au début).
Quand j'ouvre la boîte de dialogue "Ouvrir", et que je regarde ce que ça consomme en faisant Ctrl Alt Suppr, je vois qu'à chaque fois que je redessine la boîte de dialogue, l'application utilise 20 Mo de plus... alors que la mémoire utilisée devrait logiquement être constante.
Je suppose que c'est cela qu'on appelle les "fuites de mémoire", et je crois aussi savoir que c'est dû principalement aux allocations dynamiques. Et pourtant, j'ai relu tout mon code plusieurs fois : à chaque "malloc" correspond un "free", et à chaque "new" correspond un "delete". Y compris dans les constructeurs et dans les destructeurs...
Donc ma question est : est-ce qu'il y a des cas où il y a des subtilités, est-ce qu'il peut y avoir des fuites de mémoire même quand à chaque "new" correspond un "delete", ou bien est-ce qu'il s'agit forcément d'une libération qui n'a pas lieu ?
Désolé d'être aussi vague, mais je suis vraiment perdu
Je vous remercie![]()
Partager