C_facile : Introduction au langage C
Cours

La fonction "free"

Définition

La fonction "free" sert à restituer l'espace que l'on avait alloué avec "malloc".

Conseil

Nous vous conseillons d'utiliser cette fonction autant de fois que la fonction "malloc" pour libérer la place allouée dynamiquement. Si "p" pointe sur le début d'une zone mémoire allouée dynamiquement alors l'appel de la fonction « free(p) » libère cette zone mémoire.

Le gestionnaire (fictif) de mémoire centrale récupère cette place et peut éventuellement l'allouer à nouveau.

Pour comprendre le fonctionnement de la fonction « free », il peut être utile de savoir que, au moment d'une allocation dynamique, le gestionnaire (fictif) de mémoire réserve en fait une petite place supplémentaire juste avant la zone allouée au programme pour y noter la longueur de la zone allouée. Lorsque l'instruction « free(p) » est effectuée, il suffit alors au gestionnaire d'aller relire la longueur de la zone allouée pour connaître la taille de la zone à "désallouer".

Si la mémoire allouée avec « malloc » n'est pas libérée avec « free », elle est quand même libérée à la fin du programme, mais ce n'est pas de la programmation « propre ». Si l'on cherche à libérer une zone mémoire non allouée avec « malloc », cela peut provoquer une erreur à l'exécution du code.

Un exemple de gestion de listes chaînées (page suivante)La fonction « malloc » (page Précédente)
AccueilImprimer creativecommons : by-nc-ndRéalisé avec SCENARI