次の方法で共有


_CrtIsValidPointer

指定したメモリの範囲を読み取りと書き込みで有効であることを確認します (デバッグ バージョンだけ)。

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

パラメーター

  • アドレス
    メモリの先頭へのポインターは有効性をテストするためになります。

  • size
    指定したメモリ範囲のサイズ (バイト単位)。

  • アクセス
    メモリのスコープに処理する読み取り / 書き込みアクセシビリティ。

戻り値

_CrtIsValidPointer は指定したメモリの範囲で指定した操作または操作に対して有効である場合に true を返します。それ以外の場合は false が返されます。

解説

_CrtIsValidPointer の関数はメモリ アドレス の範囲の先頭と size バイトの拡張が指定したアクセシビリティの操作に対して有効であることを確認します。 アクセスが true に設定されているとメモリの範囲は読み取りと書き込みの両方に対して検証されます。 アドレスが false の場合メモリの範囲は読み取り用としてのみが検証されます。_DEBUG が未定義の場合、_CrtIsValidPointer の呼び出しはプリプロセスで削除されます。

この関数の戻り値が True または False するため単純なデバッグ エラー処理機構を作成する場合は _ASSERT マクロの 1 に渡すことができます。メモリの範囲を読み取りと書き込みの両方に対して無効な場合。次の例ではアサーション エラーが発生します :

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

他のデバッグ関数およびデバッグ マクロと連携した _CrtIsValidPointer の使い方の詳細については、「レポート用マクロの使用」を参照してください。デバッグ バージョンのベース ヒープに対するメモリ ブロックの割り当て、初期化、管理方法の詳細については、「メモリ管理とデバッグ ヒープ」を参照してください。

必要条件

ルーチン

必須ヘッダー

_CrtIsValidPointer

<crtdbg.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

ライブラリ

C ランタイム ライブラリのデバッグ バージョンのみ。

使用例

_CrtIsValidHeapPointer」のトピックの例を参照してください。

同等の .NET Framework 関数

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

関連項目

デバッグ ルーチン