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 ?...)
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 ?
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...
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)