Partager via


free

Libère un bloc de mémoire.

Syntaxe

void free(
   void *memblock
);

Paramètres

memblock
Bloc mémoire précédemment alloué à libérer.

Notes

La fonction free libère un bloc de mémoire (memblock) alloué par un appel à calloc, malloc ou realloc. Le nombre d’octets libérés équivaut au nombre d’octets demandés lorsque le bloc a été alloué (ou réaffecté, pour realloc). Si memblock c’est NULLle cas, le pointeur est ignoré et free retourne immédiatement. Toute tentative de libération d’un pointeur non valide (pointeur vers un bloc de mémoire qui n’a pas été alloué par calloc, mallocou realloc) peut affecter les demandes d’allocation suivantes et provoquer des erreurs.

Si une erreur se produit pendant la libération de la mémoire, errno est défini avec les informations du système d'exploitation sur la nature de la défaillance. Pour plus d'informations, voir errno, _doserrno, _sys_errlist et _sys_nerr.

Une fois qu’un bloc de mémoire a été libéré, _heapmin réduit la quantité de mémoire libre sur le tas en fusionnant les régions inutilisées et en les libérant sur le système d’exploitation. La mémoire libérée qui n’est pas libérée sur le système d’exploitation est restaurée dans le pool gratuit et est à nouveau disponible pour l’allocation.

Lorsque l’application est liée à une version de débogage des bibliothèques runtime C, free la résolution est _free_dbg. Pour plus d’informations sur la gestion du tas pendant le processus de débogage, consultez le tas de débogage CRT.

free est marqué __declspec(noalias), ce qui signifie que la fonction ne peut pas modifier les variables globales. Pour plus d’informations, consultez noalias.

Pour libérer de la mémoire allouée avec _malloca, utilisez _freea.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Spécifications

Fonction En-tête requis
free <stdlib.h> et <malloc.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

Consultez l’exemple pour malloc.

Voir aussi

Allocation de mémoire
_alloca
calloc
malloc
realloc
_free_dbg
_heapmin
_freea