作者k0783154 ( )
看板C_and_CPP
標題[問題] 記憶體配置地址問題
時間Thu Oct 6 14:53:55 2011
先貼code
https://gist.github.com/1266690
程式output:
4
0x64f5fc54
0x64f5fc53
0x64f5fc4c
(我的環境是mac os & gcc compiler)
(如果在不同環境的話除了值不一樣以外 性質會一樣嗎?)
一直搞不懂在記憶體配置上地址分配的問題
(以下有任何錯煩請更正我 小弟虛心受教)
a b c 三個變數是配置在 stack 上
對於一個stack(容器)來說 是從最下面開始配置
越下面的是表示高位元組 越上面是低位元組這樣嗎?
&a 代表的是a這個4bytes空間中的第一個位置 ??
我心裡是這樣想 但是看到output覺得很怪
a佔有4bytes 第一個位元址是0x64f5fc54
理應來說佔有4bytes 可是為什麼b的address是0x64f5fc53
超怪的.........
有高手可以解釋整個流程嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.51.107
→ uranusjr:沒有規定說先宣告的變數就要放在前面, 編譯器先宣告 b 了 10/06 14:58
→ uranusjr:不同變數之間的記憶體順序和連續性本來就沒有任何保證 10/06 14:59
→ angleevil:應該是說,除非你用array.不然他也沒必要做連續記憶體的 10/06 15:00
→ angleevil:動作.如果你剛好看到是連續的位置.只是剛好. 10/06 15:01
※ 編輯: k0783154 來自: 140.112.51.107 (10/06 15:10)
→ Kerick:a 54~58 b 53~54 c 4c~53 10/08 01:05