Share via


_CrtCheckMemory

Confirma la integridad de los bloques de memoria asignados en el montón de depuración (solo versión de depuración).

int _CrtCheckMemory( void );

Valor devuelto

Si se ejecuta correctamente, _CrtCheckMemory devuelve TRUE; de lo contrario, la función devuelve FALSE.

Comentarios

La función _CrtCheckMemory valida la memoria asignada por el administrador del montón de depuración comprobando el montón base subyacente e inspeccionando cada bloque de memoria. Si se encuentra un error o una inconsistencia de memoria en el montón base subyacente, la información de encabezado de depuración o los búferes de sobrescritura, _CrtCheckMemory genera un informe de depuración en el que se describe la condición de error. Cuando no se define _DEBUG, las llamadas a _CrtCheckMemory se quitan durante el preprocesamiento.

El comportamiento de _CrtCheckMemory se puede controlar estableciendo los campos de bits del marcador _crtDbgFlag mediante la función _CrtSetDbgFlag. Si se activa el campo de bits _CRTDBG_CHECK_ALWAYS_DF, se llama a _CrtCheckMemory cada vez que se solicita una operación de asignación de memoria. Aunque este método ralentiza la ejecución, es útil para detectar errores rápidamente. Si se desactiva el campo de bits _CrtCheckMemory, _CRTDBG_ALLOC_MEM_DF no comprueba el montón y devuelve inmediatamente el valor TRUE.

Dado que esta función devuelve TRUE o FALSE, se puede pasar a una de las macros de _ASSERT para crear un mecanismo sencillo de control de errores de depuración. En el ejemplo siguiente se genera un error de aserción si se detectan daños en el montón:

_ASSERTE( _CrtCheckMemory( ) );

Para obtener más información sobre cómo se puede usar _CrtCheckMemory con otras funciones de depuración, vea Funciones que indican el estado del montón. Para obtener información general sobre la administración de memoria y el montón de depuración, vea Detalles del montón de depuración de CRT.

Requisitos

Rutina

Encabezado necesario

_CrtCheckMemory

<crtdbg.h>

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

Bibliotecas

Solo las versiones de depuración de las bibliotecas en tiempo de ejecución de C.

Ejemplo

Para obtener un ejemplo de cómo usar _CrtCheckMemory, vea crt_dbg1.

Equivalente en .NET Framework

System::Diagnostics::PerformanceCounter

Vea también

Referencia

Rutinas de depuración

_crtDbgFlag

_CrtSetDbgFlag