_CrtIsValidPointer

验证中指定的内存范围用于读取和写入有效的 (请只调试版本)。

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

参数

  • 地址
    指向内存范围的起始值测试有效性。

  • size
    指定的内存范围的大小 (以字节为单位)。

  • 访问
    确定的读/写可访问性为内存范围。

返回值

因此,如果指定的内存范围为指定的操作或操作,是有效的**_CrtIsValidPointer** 返回 TRUE。 否则,该函数返回错误。

备注

_CrtIsValidPointer 功能验证在 地址的 内存范围开头和扩展 size 字节的指定的可访问性操作或操作是有效的。 在 访问 设置为 true,则内存范围对于读取和写入进行验证。 当 地址 为 false 时,内存范围用于读取只验证。 当 _DEBUG 未定义时,在预处理期间,对 _CrtIsValidPointer 中移除。

由于此函数返回 TRUE 或 false,则可以通过某个 _ASSERT 宏创建一个简单的调试错误处理机制。 ,如果内存范围对于读取和写入操作,无效的下面的示例生成断言失败:

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

有关 _CrtIsValidPointer 方式的更多信息可与其他调试函数和宏,请参见 使用验证或报告的宏。 有关如何的信息存储在基堆的调试版本中分配,初始化,并管理,请参见 内存管理和调试堆

要求

实例

必需的头

_CrtIsValidPointer

crtdbg.h

有关更多兼容性信息,请参见中介绍的 兼容性

只调试 C 运行库 的版本。

示例

_CrtIsValidHeapPointer 主题参见示例。

.NET Framework 等效项

不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见 平台调用示例

请参见

参考

调试实例