Поделиться через


_CrtCheckMemory

Проверяет целостность выделенных блоков памяти в отладочной куче (только в отладочной версии).

Синтаксис


int _CrtCheckMemory( void );

Возвращаемое значение

В случае успешного выполнения возвращаетсяTRUE; _CrtCheckMemory в противном случае функция возвращаетсяFALSE.

Замечания

Функция _CrtCheckMemory проверяет память, выделенную диспетчеру отладочной кучи, проверяя основную кучу и каждый блок памяти. Если несогласованность памяти или ошибка возникают в базовой куче, сведениях о заголовке отладки или буферах перезаписи, _CrtCheckMemory создает отчет об отладке с информацией, описывающей условие возникновения ошибки. Если _DEBUG это не определено, вызовы _CrtCheckMemory удаляются во время предварительной обработки.

Поведение _CrtCheckMemory можно контролировать, задав битовые поля _crtDbgFlag флага с помощью _CrtSetDbgFlag функции. Включение битового _CRTDBG_CHECK_ALWAYS_DF поля приводит к _CrtCheckMemory вызову при каждом запросе операции выделения памяти. Хотя этот метод замедляет выполнение, это полезно для быстрого перехвата ошибок. Включение битового поля OFF приводит _CrtCheckMemory к тому, что куча _CRTDBG_ALLOC_MEM_DF не проверяется и немедленно возвращаетсяTRUE.

Так как эта функция возвращает TRUE или FALSEпередается одному из _ASSERT макросов, чтобы создать базовый механизм обработки ошибок отладки. Следующий пример вызывает сбой утверждения, если в куче обнаружено повреждение.

_ASSERTE( _CrtCheckMemory( ) );

Дополнительные сведения о том, как _CrtCheckMemory можно использовать с другими функциями отладки, см. в разделе "Отчеты о состоянии кучи". Общие сведения об управлении памятью и отладочной куче см. в сведениях об отладочной куче CRT.

Требования

Маршрут Обязательный заголовок
_CrtCheckMemory <crtdbg.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

Библиотеки

Только отладочные версии библиотек времени выполнения языка C.

Пример

Пример использования _CrtCheckMemoryсм. в разделе crt_dbg1.

См. также

Отладка подпрограмм
_crtDbgFlag
_CrtSetDbgFlag