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


_CrtIsValidPointer

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

int _CrtIsValidPointer(     const void *address,    unsigned int size,    int access  );

Параметры

  • address
    Указывает начало диапазона памяти для проверки.

  • size
    Размер указанного диапазона памяти (в байтах).

  • access
    Доступ на чтение или запись для определения диапазона памяти.

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

_CrtIsValidPointer возвращает значение TRUE, если указанный диапазон памяти допустим для указанной операции или операций. В противном случае функция возвращает значение FALSE.

Заметки

Функция _CrtIsValidPointer проверяет допустимость диапазона памяти, начинающегося в address и занимающего size байт, для указанной операции или операций доступа. Если для параметра access задано значение TRUE, диапазон памяти проверяется для обеих операций: чтения и записи. Если значение параметра access — FALSE, проверяется допустимость диапазона памяти только для чтения. Если _DEBUG не определен, вызовы _CrtIsValidPointer удаляются на этапе предварительной обработки.

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

_ASSERTE( _CrtIsValidPointer( address, size, TRUE ) );

Дополнительные сведения о том, как _CrtIsValidPointer можно использовать с другими функциями и макросами отладки, см. в разделе Макросы для создания отчетов. Сведения о выделении, инициализации и управлении блоками памяти в отладочной версии основной кучи см. в разделе Сведения о куче отладки CRT.

Требования

Подпрограмма

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

_CrtIsValidPointer

<crtdbg.h>

_CrtIsValidPointer является расширением Майкрософт. Сведения о совместимости см. в разделе Совместимость.

Библиотеки

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

Пример

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

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

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

См. также

Ссылки

Процедуры отладки