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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章