C++11之第二章 2.23課後題討論

題目內容如下:
給定指針p,你能知道它是否指向了一個合法的對象嗎?如果能,敘述判斷的思路;如果不能,也請說明原因。
網上一下幾種答案:
答案1:這個問題我的思路是:首先用*p將其值輸出來,如果編譯器報錯,證明p指向一個無效的對象,要麼p=0要麼p未進行初始化,此時可以用if(p == NULL)進行判斷即可,不知道大家是否有好的思路噻。。。
答案2:
問的是有效對象,必然是不能確定。
答案3:
C++ 無法檢測指針是否未被初始化,也無法區分一個地址是有效地址,還是有指針所分配的存儲空間中存放的不確定的二進制位形成的地址。
覺得這裏還是圍繞一個模糊的概念,到底指針的地址是否有效,比如int *p =0; p = 10;那麼指針p肯定是一個不合法的對象,所以我還是比較支持第二種答案(純屬個人意見),歡迎廣大網友前來討論。

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