_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_errlist
y _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
.