_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. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.