_CrtIsMemoryBlock

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

int _CrtIsMemoryBlock( 
   const void *userData,
   unsigned int size,
   long *requestNumber,
   char **filename,
   int *linenumber 
);

Параметры

  • [входящий] userData
    Указатель на начало блока памяти, которую необходимо проверить.

  • [входящий] size
    Размер заданного блока (в байтах).

  • [исходящий] requestNumber
    Указатель на номер выделения блоков или NULL.

  • [исходящий] filename
    Указатель на имя исходного файла, запросившего блок или NULL.

  • [исходящий] linenumber
    Указатель на номер линии в файле источника или NULL.

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

_CrtIsMemoryBlock возвращает TRUEесли указанный блок памяти, находящийся в локальной куче и имеет допустимого отладки идентификатор типа блока кучи; в противном случае функция возвращает FALSE.

Заметки

_CrtIsMemoryBlock функция проверяет, что заданный блок памяти найден в куче приложения локальная, и что он содержит допустимый идентификатор типа блока.Эта функция может также использоваться для получения порядковый номер выделения памяти объекта и номер имени файла и линии источника, когда было первоначально запросить выделение блока памяти.Передача значений, отличных от null, для requestNumber" filenameили linenumber причины параметры _CrtIsMemoryBlock чтобы установить эти параметры в значения в блоке памяти отладочная заголовок, если он находит блок в локальной куче.После _Отладка не указывает, вызовы _CrtIsMemoryBlock удалите во время предварительной обработки.

If _CrtIsMemoryBlock значение fail возвращается FALSE и параметры вывода инициализируются значениями по умолчанию. requestNumber и lineNumber имеет значение 0, а filename равно NULL.

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

_ASSERTE( _CrtIsMemoryBlock( userData, size, &requestNumber, 
&filename, &linenumber ) );

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

Требования

Процедура

Обязательный заголовок

_CrtIsMemoryBlock

<crtdbg.h>

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

Библиотеки

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

Пример

См. пример _CrtIsValidHeapPointer разделе.

Эквивалент в .NET Framework

Неприменимо. Для c# используйте стандартная функция PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

См. также

Ссылки

Подпрограммы отладка