看板 Grad-ProbAsk 關於我們 聯絡資訊
http://i.imgur.com/AdbhzUV.jpg 想請問一下為何buffer[0]是共享的? 不是應該buffer和buffer2都是ptr的嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.88.51 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1482926616.A.5EC.html
yupog2003: 這樣宣告應該只有buffer是指向ptr所指的記憶體空間? 12/28 21:44
yupog2003: buffer[0]已經在那個memory space裡面了,跟buffer是一 12/28 21:45
yupog2003: 個local的指標不一樣,所以buffer[0]有共享 12/28 21:45
yupog2003: C好久沒碰了,憑記憶說的,可能有錯誤,請糾正我 12/28 21:47
adplz53: 我想是因為指標變數都是存放在heap 而heap的內容又被thre 12/28 22:32
adplz53: ads所共享 12/28 22:32
adplz53: 如果有觀念錯誤請大神指正 謝謝~ 12/28 22:32
yupog2003: 剛剛看到這篇,給你參考:https://goo.gl/C6lZTE 12/28 22:54
yupog2003: 我認為a大說的是正確的,更精確的來說,pointer所指向 12/28 23:13
yupog2003: 的記憶體空間(由malloc得到)是在heap,而指標本身只是 12/28 23:13
yupog2003: 一個變數,所以是在stack 12/28 23:13
yupog2003: 如果這題問buffer有沒有被共享的話答案應該就是否 12/28 23:14
yupog2003: 但是buffer[0]就有被共享,因為是在heap 12/28 23:15
yupog2003: 印象中*buffer就是buffer[0],這樣想也可以 12/28 23:22
太棒了,我的C知識真的僅止於寫一些實作的程式作業T_T 那我想問一下,在y大貼的問題裡,所謂“指標放在Stack”“指標本身的內容物 放在heap”,而此處的Stack是個別thread私有的,而heap是共有的空間嗎? ※ 編輯: ssssIssss (140.112.25.99), 12/30/2016 21:09:06
yupog2003: 是的,我的意思正是如此,感謝補充 12/30 22:27