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