Bonjour,

Je travaille sur une DLL en C++ et je suis confronté à de gros problèmes de mémoire. C'est un domaine (la gestion de la mémoire) dans lequel je ne suis pas trop à l'aise....

Donc voilà..

J'ai un point d'entrée dans ma DLL qui procède a de l'allocation dynamique sur une dizaine de tableaux à 1 dimensions et sur 3 tableaux à 2 dimensions.
En fin de traitement je libère la mémoire réservée.

Quand j'observe la mémoire disponible en exécutant ma DLL en mode debug, tout marche nickel, j'ai un pic d'utilisation mémoire après mon allocation et tout est intégralement libéré ensuite...tout ?...et bien pas tout à fait...il me reste quelques octets qui s'accumulent, rien de bien méchant, je "perds" 10Mo après une 100aine d'exécution de la fonction. Mais tout ça n'est pas très grave, à moins que ce ne soit une piste à suivre pour la suite ...

Quand je fait la même observation en mode release, la mémoire n'est pas libérée ou moins libérée en tout cas, car l'utilisation du fichier dans le gestionnaire de tâche augmente à chaque exécution, jusqu'à atteindre la quantité disponible et là je me tape des codes erreur (normal).

Mais pourquoi une telle différence de comoprtement entre les modes DEBUG et RELEASE ?

Si vous avez une explications, ou une piste à suivre je suis preneur.
De même si vous avez des bouquins traitant de la gestion de mémoire en C++ à me conseiller ;-)

D'avance merci
Ben