Exportar (0) Imprimir
Expandir todo
div
EOF
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

_freea

desasigna o libera un bloque de memoria.

void _freea( 
   void *memblock 
);

memblock

Bloque de memoria previamente asignado se libere.

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.

Función

Encabezado necesario

_freea

<stdlib.h> y <malloc.h>

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

Vea el ejemplo para _malloca.

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.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft