1

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 ?
youpi !

2

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)

3

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);
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

4

Elle mets a jour les informations necessaires dans les tables, dans les listes pour qu'au prochain alloc on puisse utiliser cette zone.

5

squale92 > sans dec eek


En fait je fais ca :
ptr=malloc(blablabla);
...
free(ptr);
le truc, c'est que je modifie le pointeur ptr au cours du programme... dois-je le remettre à sa position initiale avant de faire le free ?
youpi !

6

alalala.

char *origine, *ptr;

origine = ptr = malloc(cblkslbk lsk);

free(origine);

7

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.
youpi !

8

Non.
C la valeur de l'adresse qui importe.

9

oki merci !
youpi !

10

Mais que tu repasse la bonne adresse a free, sinon, tu va avoir des problemes ...