free
libère ou libère un bloc de mémoire.
void free(
void *memblock
);
Paramètres
- memblock
Bloc de mémoire précédemment allouée à libérer.
Notes
La fonction d' free libère un bloc de mémoire (memblock) qui a déjà été alloué 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.La tentative de libérer un pointeur valide (un pointeur vers un bloc de mémoire qui n'a pas été alloué par calloc, à malloc, ou à realloc) peut affecter des demandes d'allocation suivantes et provoquer des erreurs.
Si une erreur se produit en libérant de 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.
Après un bloc de mémoire a été libéré, _heapmin réduit la quantité de mémoire disponible sur le tas lors de la fusion de régions inutilisées et en les publier sur le système d'exploitation.La mémoire libérée qui n'est pas libérée au système d'exploitation est restaurée au pool et gratuit est disponible pour l'allocation de nouveau.
Lorsque l'application est liée à une version debug des bibliothèques runtime C, free le résout vers _free_dbg.Pour plus d'informations sur la façon dont le tas est exécuté pendant le processus de débogage, consultez Le tas de débogage CRT.
free est __declspec(noalias)marqué, ce qui signifie que la fonction est garantie ne pas modifier les variables globales.Pour plus d'informations, consultez noalias.
À la mémoire allouée avec _malloca, utilisez _freea.
Configuration requise
Fonction |
en-tête requis |
---|---|
free |
<stdlib.h> et <malloc.h> |
Pour des informations de compatibilité supplémentaires, consultez compatibilité dans l'introduction.
Exemple
Consultez l'exemple pour malloc.
Équivalent .NET Framework
Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez l' exemples d'appel de code non managé.