題目內容如下:
給定指針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