Re: [問題] 用指標建陣列的問題

看板C_and_CPP (C/C++)作者 (←這人是超級笨蛋)時間15年前 (2011/03/27 02:01), 編輯推噓1(106)
留言7則, 3人參與, 最新討論串2/3 (看更多)
※ 引述《jacky1989 (幻想的夢境)》之銘言: : a=(int *)malloc(sizeof(a)); : a[i]=rand()%223+123; 第 0 次 (i = 0) a ↓ ┌─┬─┬─┬─┬── │ │ │ │ │ ... └─┴─┴─┴─┴── a[0] ↓ ┌─┬─┬─┬─┬── │15│ │ │ │ ... 數字隨便填的 └─┴─┴─┴─┴── 第 1 次 (i = 1) a ↓ ┌─┬─┬─┬─┬── 其實並沒有保證連續 malloc 回傳的位址會連續 │15│ │ │ │ ... 不過為了解釋方便我們先這樣假設 └─┴─┴─┴─┴── a[1] ↓ ┌─┬─┬─┬─┬── │15│ │21│ │ ... !!?? └─┴─┴─┴─┴── 這時如果這個空間不是屬於程式的合法記憶體空間 作業系統就會判定你在亂搞, 然後把程式砍掉 你到第七次才失敗代表成功了六次, 已經不錯了...XD -- ╱ ̄ ̄ ̄╲ ▏◢█◣ 成龍表示: 是喔... ′/ ‵ ╰╯ ψQSWEET █◤ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.81.146

03/27 02:09, , 1F
高手~~
03/27 02:09, 1F

03/27 02:11, , 2F
坦白說我看不懂這樣的說明....XD
03/27 02:11, 2F

03/27 02:17, , 3F
不會阿!!我覺得寫的蠻好的耶,淺顯易懂
03/27 02:17, 3F

03/27 02:19, , 4F
樓上的意思是不能在迴圈裡宣告malloc吧
03/27 02:19, 4F

03/27 02:21, , 5F
意思應該是用到才配置不一定會連續吧?如果不是Link list
03/27 02:21, 5F

03/27 02:21, , 6F
所以有可能配置到不該使用的空間....
03/27 02:21, 6F

03/27 02:23, , 7F
就是記憶體空間不是像堆疊一樣疊上去(LINK LIST較洽當)
03/27 02:23, 7F
文章代碼(AID): #1DZYd-Ui (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1DZYd-Ui (C_and_CPP)