AfxIsValidAddress判断指针地址是否有效

29 篇文章 0 订阅

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

 

// 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是什么?传送门

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值