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 al liberar memoria, en errno se muestra información sobre la naturaleza del error proporcionada por el sistema operativo. 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, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.