stephanelin
Messages postés12Date d'inscriptionmercredi 3 mars 2004StatutMembreDernière intervention13 décembre 2004
-
14 nov. 2004 à 20:26
bebert37
Messages postés38Date d'inscriptionjeudi 17 juillet 2003StatutMembreDernière intervention16 février 2005
-
16 nov. 2004 à 16:29
Bonsoir,
je voudrai savoir comment est-ce qu'il faut faire pour vérifier qu'on a bien libéré l'espace mémoire alloué a une variable...
Je sais qu'il faut utiliser un free()... mais est-ce possible de glisser un printf("...",sizeof(...)) de ce type pour vérifier la libération de la mémoire allouée ? (le printf devrait renvoyé "0" non ?...)
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 14 nov. 2004 à 21:55
Nan pas de printf ("...", sizeof()) car ca te renverra TOUJOURS 4, ce qui correspond a la taille de ton pointeur.
Je ne comprend pas vraiment ce que tu cherches a faire, pourrais tu expliker un peu plus en details ?
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 15 nov. 2004 à 18:30
Pour etre sur que tout est alloué, tu peux faire des fonction d'allocation personnalisée. Par exemple, si tu es en Debug, tu ajoute à une varaible globale le nombre d'octets alloués, et à free tu les enleve, et la fin tu dois avoir zero.
Si tu veux juste savoir si free a bien marché, a priori je ne vois pas de raison pour que ca échoue...
bebert37
Messages postés38Date d'inscriptionjeudi 17 juillet 2003StatutMembreDernière intervention16 février 2005 16 nov. 2004 à 16:29
t'inquiete pas si free echoue tu le sauras tres vite ===> t'as un gros bug en générale.
maintenant si tu veux vraimant vérifier à ce momment la tu fais :
ptr=(void*)realloc(ptr,0);
if(ptr!=NULL){
// memoire pas désallouer
}else{
// mémoire desalouer
}
car le realloc de 0 est equivalant à un free mais il retourne un pointeur sur la nouvelle zone mémoire à savoir NULL si tout marche bien et si il plante il ne touche pas à l'ancienne zone mémoire donc il te renvois le pointeur d'avant..
voilou
*****
Ce sont les tonneaux vides et les hommes pleins qui font le plus de bruit
:big)