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 NULL
le 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
, malloc
ou 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