free
desasigna o libera un bloque de memoria.
void free(
void *memblock
);
Parámetros
- memblock
Bloque de memoria previamente asignado se libere.
Comentarios
La función de free desasigna un bloque de memoria (memblock) que fue asignado previamente por una llamada a calloc, a malloc, o a realloc.El número de bytes liberados es equivalente al número de bytes solicitados cuando el bloque fue asignado (o reasignado, en el caso de realloc).Si memblock es NULL, se omite el puntero y free inmediatamente devuelve.Al intentar liberar un puntero no válido (puntero a un bloque de memoria que no fue asignado por calloc, a malloc, o a realloc) puede afectar a las solicitudes subsiguientes de asignación y producir errores.
Si se produce un error en liberar memoria, errno se establece con la información del sistema operativo de la naturaleza del error.Para obtener más información, vea errno, _doserrno, _sys_errlist, y _sys_nerr.
Una vez liberado un bloque de memoria, _heapmin minimiza la cantidad de memoria disponible en el montón uniéndose regiones no usadas y soltándola a éstos de nuevo al sistema operativo.Memoria liberada que no se libera al sistema operativo se restaura el conjunto libre y está disponible para la asignación de nuevo.
Cuando la aplicación se vincula con una versión de depuración de las bibliotecas en tiempo de ejecución de C, free resuelve a _free_dbg.Para obtener más información sobre cómo la pila se administra durante el proceso de depuración, vea El montón de depuración de CRT.
free es __declspec(noalias)marcado, lo que significa que la función está garantizada para no modificar variables globales.Para obtener más información, vea noalias.
Liberar memoria asignada con _malloca, utilice _freea.
Requisitos
Función |
Encabezado necesario |
---|---|
free |
<stdlib.h> y <malloc.h> |
Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.
Ejemplo
Vea el ejemplo para malloc.
Equivalente en .NET Framework
No es aplicable Para llamar a la función estándar de C, utilice PInvoke. Para obtener más información, vea La invocación de plataforma ejemplos.