Compartir a través de


_freea

Desasigna o libera un bloque de memoria.

void _freea( 
   void *memblock 
);

Parámetros

  • memblock
    Bloque de memoria previamente asignado se libere.

Valor devuelto

Ninguno.

Comentarios

La función de _freea desasigna un bloque de memoria (memblock) que fue asignado previamente por una llamada a _malloca. comprobaciones de_freea para ver si se asignó la memoria en la pila o el montón. Si se asignó en la pila, _freea no hace nada. Si se asignó en la pila, el número de bytes liberados es equivalente al número de bytes solicitados cuando el bloque fue asignado. Si memblock es NULL, se omite el puntero y _freea inmediatamente devuelve. Al intentar liberar un puntero no válido (puntero a un bloque de memoria que no fue asignado por _malloca) puede afectar a las solicitudes subsiguientes de asignación y producir errores.

_freea llama free internamente si encuentra que memoria está asignada en el montón. Si la memoria está en la pila o el montón está determinado por un marcador situado en memoria en la dirección inmediatamente antes de la memoria asignada.

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.

Una llamada a _freea debe para todas las llamadas a _malloca. También es un error para llamar a _freea dos veces en la misma. Cuando la aplicación se vincula con una versión de depuración de las bibliotecas en tiempo de ejecución de C, especialmente con las características de _malloc_dbg habilitó definiendo _CRTDBG_MAP_ALLOC, resulta más fácil encontrar falta o llamadas duplicadas a _freea. 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.

_freea 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.

Requisitos

Función

Encabezado necesario

_freea

<stdlib.h> y <malloc.h>

Para obtener más información de compatibilidad, vea Compatibilidad en la Introducción.

Ejemplo

Consulte el ejemplo de _malloca.

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.

Vea también

Referencia

Asignación de memoria

_malloca

calloc

malloc

_malloc_dbg

realloc

_free_dbg

_heapmin