euh, ma question peut paraître conne :
elle fait quoi la fonction free ?
me répondez pas : "elle libère la mémoire allouée"
Ca c'est le but recherché, mais concrêtement, kesl'elle fou ? Elle se contente de supprimé le pointeur ? elle fait autre chose ?
Ca libere surtout le Handle associé au bloc memoire (en gros, ca indique au TIOS que la zone memoire est libre, et qu'elle peut servir a autre chose)
Si tu veux voir son utilité, tu peux faire un programme qui alloue 50ko avec malloc.
Va voir après dans le menu MEM... Tu verras que tu as une énorme quantité de mémoire qui est bouffée (mémoire system) !
Si tu fais ce même programme en utilisant free à la fin, tu verras que la mémoire n'est pas bouffée !
void *pointeur;
pointeur = malloc(50000);
// selon ce que tu veux :
free(pointeur);
PpHd Le 16/06/2001 à 14:20 Elle mets a jour les informations necessaires dans les tables, dans les listes pour qu'au prochain alloc on puisse utiliser cette zone.
PpHd Le 16/06/2001 à 14:20 alalala.
char *origine, *ptr;
origine = ptr = malloc(cblkslbk lsk);
free(origine);
oué non ca c'est ce que j'ai fait, mais quand même, je voulais savoir si ca posait un prob à la fonction free que je modifie le ptr sans le sauvegarder avant, c'est tout.
PpHd Le 16/06/2001 à 14:20 Non.
C la valeur de l'adresse qui importe.
Mais que tu repasse la bonne adresse a free, sinon, tu va avoir des problemes ...