题目内容如下:
给定指针p,你能知道它是否指向了一个合法的对象吗?如果能,叙述判断的思路;如果不能,也请说明原因。
网上一下几种答案:
答案1:这个问题我的思路是:首先用*p将其值输出来,如果编译器报错,证明p指向一个无效的对象,要么p=0要么p未进行初始化,此时可以用if(p == NULL)进行判断即可,不知道大家是否有好的思路噻。。。
答案2:
问的是有效对象,必然是不能确定。
答案3:
C++ 无法检测指针是否未被初始化,也无法区分一个地址是有效地址,还是有指针所分配的存储空间中存放的不确定的二进制位形成的地址。
觉得这里还是围绕一个模糊的概念,到底指针的地址是否有效,比如int *p =0; p = 10;那么指针p肯定是一个不合法的对象,所以我还是比较支持第二种答案(纯属个人意见),欢迎广大网友前来讨论。
C++11之第二章 2.23课后题讨论
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
boost asio 中各种buffer
sunwake999
2020-07-08 08:38:02
c++11字符串:string
liuyuan185442111
2020-07-08 00:58:04
c++11伪随机数生成库:random
liuyuan185442111
2020-07-08 00:58:04
c++11容器新特性
liuyuan185442111
2020-07-08 00:58:04
c++11函数对象:functional
liuyuan185442111
2020-07-08 00:58:04
c++11新算法:algorithm
liuyuan185442111
2020-07-08 00:58:04
c++11通用工具:tuple
liuyuan185442111
2020-07-08 00:58:04
c++11线程支持库:future
liuyuan185442111
2020-07-08 00:58:04
C++ 字符串融合 和 string 与 int 之间最简单的转换方法
AoboSir
2020-07-07 15:59:04
c++ 中explicit的作用
月亮+六便士
2020-07-07 02:14:45
c++11下的单例模式
一、原來的單例模式設計流程 1、構造函數修改爲私有; 2、定義一個私有的靜態成員變量(返回指針); 3、定義一個全局的靜態成員函數(返回指針); 4、通過全局靜態成員函數實現控制類的實例化的
月亮+六便士
2020-07-07 02:14:45
Ubuntu 使用C++ 11新特性
特別簡單的方法,而且實驗可用 http://maykiller.com/2012/ubuntu-install-gcc-4-7-with-set-default/ 下面是測試的代碼:
傲难
2020-07-07 01:51:09
C++11 学习笔记 列表初始化
寒风中的易水
2020-07-05 02:34:39
在一个多线程系统中,主进程应该写什么?
懵圈丰
2020-07-05 01:09:04