AfxIsValidAddress

测试所有内存地址确保它在程序的内存空间内完全包含。

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

参数

  • lp
    指向要测试的内存地址。

  • nBytes
    包含字节数要测试的内存。

  • bReadWrite
    指定内存均为读取和写入 (TRUE) 或读取 (FALSE)。

返回值

因此,如果指定的内存块在程序的内存空间中,完全包含在调试版本中,非零;否则为 0。

,如果 lp 不为空,在非调试版本中,非零;否则为 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));

要求

Header: afx.h

请参见

参考

AfxIsMemoryBlock

AfxIsValidString

概念

MFC宏和Globals