AfxIsValidAddress判断指针地址是否有效

好了,同学们,开始上课。

 

// 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));

这就是用法,某些同学可以下课了。。。

 

好了,我们继续讲精华部分。

 

BOOL AfxIsValidAddress(
   const void* lp,//指针
   UINT nBytes,//指针内存大小
   BOOL bReadWrite = TRUE //读写内存(TRUE)或仅读取内存(FALSE),默认TRUE
);

函数作用:

 

检查指定内存是否有效(切记,不是是否为NULL):调试可以发现上述例子中指针提示为错误的指针。

返回值:

Debug,指针的内存有效,则为非零值;否则为0。
在非Debug中,如果指针不是null,则非零,否则为0。

提示:

检测的指针内存并不局限于新分配的内存。

以上信息来源于MSDN。MSDN是什么?传送门

你可能感兴趣的:(mfc,c++)