comme j'ai beaucoup d'images qui se stockent en memoire cela me prend enormement de place en memoire plus de 500 mo suivant les images de depart.Par consequent, il faut que je libere la mémoire a la fin, c la ou est le problème.
J'ai beau faire :
FreeImage_Unload(tabImage[i]);
free(tabImage[i]);
J'ai toujours autant de memoire utilisé. Comme je voudrai utiliser le programme plusieur fois a la suite sans quitter pouis relancer, il faudrai un moyen de liberer corectement la memoire.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 13 juil. 2005 à 18:31
J'imagine que la majorité de la place est occupée par les élements de tabImage, pas tabImage lui même (qui fait nbImages * 4 octets). Si la taille ne diminue pas, c'est que FreeImage_Unload ne fait pas son boulot (dans tous les cas, je vois pas ce que free() vient faire la dedans...). Tu es bien sur que c'est cette fonction que tu dois appeler pour libérer la mémoire?
cs_marco900
Messages postés6Date d'inscriptionlundi 13 juin 2005StatutMembreDernière intervention29 janvier 2009 28 janv. 2009 à 16:42
Bonjour,
Il n'est jamais trop tard pour répondre...
Je pense que pour créer ton bitmap tu as utiliser la fonction
bitmap = CreateDIBitmap(GetDC(NULL),FreeImage_GetInfoHeader(TonImage),CBM_INIT,FreeImage_GetBits(TonImage),FreeImage_GetInfo(TonImage),DIB_RGB_COLORS); A la place de faire un GetDC(NULL):
HDC dc;
dc = GetDC(NULL);
ReleaseDC(NULL,dc);
Ca m'a corrigé bcp de fuites mémoires
------------------------------------------------------------------------------------- Si vous arrivez à arrêter de fumer, boire & faire l'amour, vous ne
vivrez pas plus vieux ; ça vous semblera juste plus long...
-------------------------------------------------------------------------------------