_CrtIsValidPointer
Проверяет, что указатель не имеет значения NULL. В версиях библиотеки времени выполнения языка C, выпущенных до выхода Visual Studio 2010, проверяет, является ли указанный диапазон памяти допустимым для чтения и записи (только отладочная версия).
Синтаксис
int _CrtIsValidPointer(
const void *address,
unsigned int size,
int access
);
Параметры
address
Указывает начало диапазона памяти для проверки.
size
Размер указанного диапазона памяти (в байтах).
access
Доступ на чтение или запись для определения диапазона памяти.
Возвращаемое значение
_CrtIsValidPointer
возвращает значение TRUE
, если указанный указатель не имеет значения NULL. В версиях библиотекИ CRT до Visual Studio 2010 возвращается TRUE
, допустим ли диапазон памяти для указанной операции или операций. В противном случае функция возвращает значение FALSE
.
Замечания
В библиотеке CRT в Visual Studio 2010 и более поздних версиях size
access
параметры игнорируются и _CrtIsValidPointer
проверяются только то, что указанный параметр address
не имеет значения NULL. Так как этот тест легко выполнять самостоятельно, мы не рекомендуем использовать эту функцию. В версиях, выпущенных до выхода Visual Studio 2010, эта функция проверяет допустимость диапазона памяти, начинающегося по адресу address
и занимающего заданное параметром size
количество байт, для указанной операции или операций доступа. Если access
задано значение TRUE
, диапазон памяти проверяется как для чтения, так и для записи. Если access
это FALSE
так, диапазон памяти проверяется только для чтения. Если _DEBUG
это не определено, вызовы _CrtIsValidPointer
удаляются во время предварительной обработки.
Так как эта функция возвращает TRUE
или FALSE
передается одному из _ASSERT
макросов, чтобы создать базовый механизм обработки ошибок отладки. В следующем примере возникает сбой утверждения, если диапазон памяти недействителен как для операций чтения, так и для записи:
_ASSERTE( _CrtIsValidPointer( address, size, TRUE ) );
Дополнительные сведения о том, как _CrtIsValidPointer
можно использовать с другими функциями отладки и макросами, см. в разделе "Макросы" для создания отчетов. Сведения о выделении, инициализации и управлении блоками памяти в отладочной версии базовой кучи см. в сведениях об отладочной куче CRT.
Требования
Маршрут | Обязательный заголовок |
---|---|
_CrtIsValidPointer |
<crtdbg.h> |
_CrtIsValidPointer
является расширением Майкрософт. Дополнительные сведения о совместимости см. в разделе Совместимость.
Библиотеки
Только отладочные версии библиотек времени выполнения языка C.
Пример
См. пример статьи _CrtIsValidHeapPointer
.