Compartir a través de


_free_dbg

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

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 función _free_dbg es una versión de depuración de la función free. Si no se define _DEBUG, cada llamada a _free_dbg se reduce a 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 situados a cada lado de la parte del usuario y emite un informe de error en caso de sobrescritura. Si se establece el campo de bits _CRTDBG_DELAY_FREE_MEM_DF de la marca _crtDbgFlag, el bloque liberado se rellena con el valor 0xDD, recibe el tipo de bloque _FREE_BLOCK y se mantiene en la lista vinculada de bloques de memoria del montón.

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.

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, vea Detalles del montón de depuración de CRT. Para obtener información sobre la asignación de tipos de bloque y cómo se usan, vea Tipos de bloques en el montón de depuración. Para obtener información sobre las diferencias entre llamar a una función estándar del montón y su versión de depuración en una compilación de depuración de una aplicación, vea Versiones de depuración de las funciones de asignación del montón.

Requisitos

Rutina

Encabezado necesario

_free_dbg

<crtdbg.h>

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

Ejemplo

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

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

Rutinas de depuración

_malloc_dbg