次の方法で共有


AfxIsValidAddress

更新 : 2007 年 11 月

任意のメモリ アドレスがプログラムのメモリ空間内に完全に収まっているかどうかを調べます。

BOOL AfxIsValidAddress(
   const void* lp,
   UINT nBytes,
   BOOL bReadWrite = TRUE 
); 

パラメータ

  • lp
    テストするメモリ アドレスへのポインタ。

  • nBytes
    調べるメモリのバイト数。

  • bReadWrite
    メモリが読み出し、書き込み両方に使われる (TRUE) か、または読み込み専用として使われる (FALSE) かを指定します。

戻り値

デバッグ ビルドでは、指定されたメモリ ブロックがプログラムのメモリ空間内に収まっている場合は 0 以外を返します。それ以外の場合は 0 を返します。

非デバッグ ビルドでは、lp が NULL でない場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

指定するアドレスは、new 演算子を使って割り当てられたメモリ ブロックである必要はありません。

使用例

// Allocate a 5 character array, which should have a valid memory address.
char* arr = new char[5];

// Create a null pointer, which should be an invalid memory address.
char* null = (char*)0x0;

ASSERT(AfxIsValidAddress(arr, 5));
ASSERT(!AfxIsValidAddress(null, 5));

必要条件

ヘッダー : afx.h

参照

概念

MFC マクロとグローバル

参照

AfxIsMemoryBlock

AfxIsValidString