Compartir a través de


_free_dbg

Libera un bloque de memoria del montón (solo versión de depuración).

Sintaxis

void _free_dbg(
   void *userData,
   int blockType
);

Parámetros

userData
Puntero al bloque de memoria asignado que se va a liberar.

blockType
Tipo de bloque de memoria asignado que se va a liberar: _CLIENT_BLOCK, _NORMAL_BLOCK o _IGNORE_BLOCK.

Comentarios

La _free_dbg función es una versión de depuración de la free función. Cuando _DEBUG no se define, cada llamada a se reduce a _free_dbg una llamada a free. free y _free_dbg liberan un bloque de memoria del montón base, pero _free_dbg incluye dos características de depuración: la posibilidad de mantener los bloques liberados en la lista vinculada del montón para simular condiciones de memoria insuficiente y un parámetro de tipo de bloque para liberar tipos de asignación específicos.

_free_dbg realiza una comprobación de validez en todos los archivos especificados y las ubicaciones de bloques antes de realizar la operación de liberación. No se espera que la aplicación proporcione esta información. Cuando se libera un bloque de memoria, el administrador del montón de depuración comprueba automáticamente la integridad de los búferes en cualquier lado de la parte del usuario. Emite un informe de errores si detecta una sobrescritura. Si se establece el _CRTDBG_DELAY_FREE_MEM_DF campo de bits de la _crtDbgFlag marca, el bloque liberado se rellena con el valor 0xDD, se le asigna el _FREE_BLOCK tipo de bloque y se mantiene en la lista vinculada del montón de bloques de memoria.

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, veaerrno, _doserrno, _sys_errlisty _sys_nerr.

Para obtener información sobre cómo se asignan, inicializan y administran los bloques de memoria en la versión de depuración del montón base, consulte Detalles del montón de depuración de CRT. Para obtener información sobre los tipos de bloques de asignación y cómo se usan, consulte Tipos de bloques en el montón de depuración. Para obtener información sobre las diferencias entre llamar a una función de montón estándar y la versión de depuración, consulte Depuración de versiones de funciones de asignación de montón.

Requisitos

Routine Encabezado necesario
_free_dbg <crtdbg.h>

Para obtener más información sobre compatibilidad, consulte Compatibilidad.

Ejemplo

Para obtener un ejemplo de cómo usar _free_dbg, vea crt_dbg2.

Consulte también

Rutinas de depuración
_malloc_dbg