好了,同学们,开始上课。
// 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是什么?传送门