C++11之第二章 2.23课后题讨论

题目内容如下:
给定指针p,你能知道它是否指向了一个合法的对象吗?如果能,叙述判断的思路;如果不能,也请说明原因。
网上一下几种答案:
答案1:这个问题我的思路是:首先用*p将其值输出来,如果编译器报错,证明p指向一个无效的对象,要么p=0要么p未进行初始化,此时可以用if(p == NULL)进行判断即可,不知道大家是否有好的思路噻。。。
答案2:
问的是有效对象,必然是不能确定。
答案3:
C++ 无法检测指针是否未被初始化,也无法区分一个地址是有效地址,还是有指针所分配的存储空间中存放的不确定的二进制位形成的地址。
觉得这里还是围绕一个模糊的概念,到底指针的地址是否有效,比如int *p =0; p = 10;那么指针p肯定是一个不合法的对象,所以我还是比较支持第二种答案(纯属个人意见),欢迎广大网友前来讨论。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值