_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 TRUE
inmediatamente .
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
.