[問題] 請問一下新手十誡裡的第六誡

看板C_and_CPP (C/C++)作者 (偉)時間16年前 (2009/07/22 23:17), 編輯推噓4(403)
留言7則, 5人參與, 最新討論串1/1
意思是這樣嗎 int *change(int *x) { int *ptr; *ptr=*x+10; return ptr; } 回傳回去的指標變數ptr會變垃圾值嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.127.3

07/22 23:19, , 1F
不但回去是垃圾值, 連寫值到*ptr都是一件非法的事....
07/22 23:19, 1F

07/22 23:20, , 2F
不過, 如果是ptr = x + 10; return ptr;值是有意義的.
07/22 23:20, 2F

07/22 23:27, , 3F
不可以在函式中回傳一個指向 "區域性"自動"變數"的指標
07/22 23:27, 3F

07/23 00:17, , 4F
不過 *ptr不就會 run time error了嘛?
07/23 00:17, 4F

07/23 00:20, , 5F
如果是 ptr = x+10 , 而 x 在外面又是指向array, 那這
07/23 00:20, 5F

07/23 00:21, , 6F
樣寫就合理, *ptr 也不見得會有問題
07/23 00:21, 6F

07/23 00:29, , 7F
謝謝,我懂了
07/23 00:29, 7F
文章代碼(AID): #1APosX5u (C_and_CPP)
文章代碼(AID): #1APosX5u (C_and_CPP)