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