_CrtIsValidPointer
Проверяет, является ли указанный диапазон памяти допустимым для чтения и записи (отладочные версии).
int _CrtIsValidPointer(
const void *address,
unsigned int size,
int access
);
Параметры
адрес
Указывает на начало диапазона памяти в тест на допустимость.size
Размер указанного диапазона памяти (в байтах).Доступ
Специальные возможности чтения/записи, указанные для диапазона памяти.
Возвращаемое значение
_CrtIsValidPointer возвращает значение true, если указанный диапазон памяти является допустимым для заданной операции или операций.В противном случае функция возвращает значение false.
Заметки
_CrtIsValidPointer функция проверяет, что начало диапазона памяти адрес и для удлиняющ size байты являются допустимыми для заданной операции или операций со специальными возможностями.После Доступ имеет значение TRUE, диапазон памяти проверяется как для чтения, так и для записи.После адрес FALSE, диапазон памяти проверяется только для чтения.После _Отладка не указывает, вызовы _CrtIsValidPointer удалите во время предварительной обработки.
Поскольку эта функция возвращает значение true или FALSE, его можно передавать одно из _ASSERT макросы для создания простой механизм обработки ошибок отладки.Следующий пример вызывает сбой проверочного утверждения если диапазон памяти недопустимо и для операций чтения и записи.
_ASSERTE( _CrtIsValidPointer( address, size, TRUE ) );
Дополнительные сведения о способах _CrtIsValidPointer может использоваться с другими отладка функции и макросы, см. в разделе С помощью макросов для проверки и отчетности.Сведения о том, как блоки памяти, выделенные инициализируются и управляемые в отладочной версии базовой кучи см. в разделе Управление памятью и куча отладки.
Требования
Процедура |
Обязательный заголовок |
---|---|
_CrtIsValidPointer |
<crtdbg.h> |
Дополнительные сведения о совместимости см. Совместимость во введении.
Библиотеки
Отладочные версии Библиотеки времени выполнения C только для чтения.
Пример
См. пример _CrtIsValidHeapPointer разделе.
Эквивалент в .NET Framework
Неприменимо. Для c# используйте стандартная функция PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.