→ SeamusBerloz: 一,你說對了。二,釋放後指標仍指向野指標。07/23 23:01
→ PkmX: *(a+b) 和 a[b] 是等價的07/23 23:02
→ Richun: 你問題一的寫法是相當於"取Array[15]的值出來+1"07/23 23:02
→ PkmX: 所以 *(array+15)+1; 就是 array[15]+1; 拿來+1以後就丟掉了07/23 23:03
→ Richun: 沒有存到任何地方去,所以*(Array+15)的值不變。07/23 23:03
→ SeamusBerloz: 得還要自己將指標指向NULL才能確保後續不被誤用。07/23 23:03
→ PkmX: 問題2你看到的是錯的 new如果配置失敗會丟exception07/23 23:03
→ PkmX: 也沒有規定 delete 以後會把指標清成 007/23 23:04
→ Richun: 不過C的malloc失敗我記得會丟NULL回來07/23 23:05
推 b0920075: free掉之後還要再自己賦值null,呃我的C是這樣寫的07/24 00:19
推 b0920075: 我記得free後會變成dangling pointer07/24 03:36
推 ilms49898723: malloc失敗回傳NULL,new失敗丟std::bad_alloc例外07/24 07:43
推 james732: 如果標準有規定delete之後一定會被設成nullptr就好了XD07/24 17:09
推 CoNsTaR: 是第16項加一吧 如果從1開始算的話07/24 18:06
謝謝大家說明
原來delete後沒有被定義成NULL
還有他都有定義好失敗回傳的東西
※ 編輯: discipile (36.239.65.3), 07/25/2016 13:50:23