Compartir a través de


_CrtCheckMemory

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

Sintaxis


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 _DEBUG no se define, las llamadas a _CrtCheckMemory se quitan durante el preprocesamiento.

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

Dado que esta función devuelve TRUE o FALSE, se puede pasar a una de las _ASSERT macros para crear un mecanismo básico 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 _CrtCheckMemory se puede usar con otras funciones de depuración, consulte Funciones de informes de estado del montón. Para obtener información general sobre la administración de memoria y el montón de depuración, consulte Detalles del montón de depuración de CRT.

Requisitos

Routine Encabezado necesario
_CrtCheckMemory <crtdbg.h>

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

Bibliotecas

Solo 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.

Consulte también

Rutinas de depuración
_crtDbgFlag
_CrtSetDbgFlag