libre

Désalloue ou libère un bloc mémoire.

void free( 
   void *memblock 
);

Paramètres

  • memblock
    Bloc mémoire alloué précédemment pour être libéré.

Notes

La fonction free désalloue un bloc de mémoire (memblock) qui a été allouée précédemment par un appel à calloc, malloc, ou realloc. Le nombre d'octets libérés est équivalent au nombre d'octets demandés lorsque le bloc a été alloué (ou réaffecté, dans le cas de realloc). Si memblock est NULL, le pointeur est ignoré et free retourne immédiatement, Tenter de libérer un pointeur invalide (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 en libérant la mémoire, errno est défini avec les informations du système d'exploitation sur la nature de l'échec. Pour plus d'informations, consultez errno, _doserrno, _sys_errlist et _sys_nerr.

Lorsqu'un bloc de mémoire a été libéré, _heapmin réduit la quantité de mémoire disponible sur le segment en fusionnant les régions inutilisées et en les libérant dans le système d'exploitation. La mémoire libérée qui n'est pas libérée vers le système d'exploitation est restaurée au pool disponible et est de nouveau disponible pour l'allocation.

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

free est marqué comme __declspec(noalias), ce qui signifie que la fonction est assurée de ne pas modifier les variables globales. Pour plus d'informations, consultez noalias.

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

Configuration requise

Fonction

En-tête requis

free

<stdlib.h> et <malloc.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

Exemple

Consultez l'exemple de malloc.

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

Voir aussi

Référence

Allocation de mémoire

_alloca

calloc

malloc

realloc

_free_dbg

_heapmin

_freea