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 _freeadesasigna 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 ha asignado en el montón, _freea no hace nada.Si se ha asignado en el montón, 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 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.

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

Vea el ejemplo para _malloca.

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.

Vea también

Referencia

Asignación de memoria

_malloca

calloc

malloc

_malloc_dbg

realloc

_free_dbg

_heapmin