PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] 宣告的記憶體空間和位址
作者:
OnlyCourage
(Anan)
2019-07-20 13:51:43
各位好!
小弟想了解宣告是記憶體的配置方式,遇到一些問題。
double a4, a3;
int a1, a2, a5;
分別print這五個變數的記憶體位址如下
a1>0x62fe3c
a2>0x62fe38
a3>0x62fe40
a4>0x62fe48
a5>0x62fe34
編譯的時候會先a4, a3, a1, a2, a5依序建立,double為8bytes,int為4bytes。
我的問題是a4到a3佔了8bytes,但是a3為double型態,為什麼到a1卻只有4bytes呢?不是應
該8bytes,而a1從0x62fe38開始嗎?
謝謝各位指教!
作者:
school4303
(某爬蟲類)
2019-07-20 14:07:00
因為這樣宣告是在stack裡 記憶體是從大的往小的要
作者:
KaryuuIssen
(一閃)
2019-07-20 14:07:00
你看反了 a3是0x62fe40~48 a1是0x62fe3c~40
作者:
KaryuuIssen
(一閃)
2019-07-20 14:09:00
恩 不包含結尾
作者:
nh60211as
2019-07-20 14:11:00
你自己先畫出來看吧,你都說int是4bytes
作者:
school4303
(某爬蟲類)
2019-07-20 17:04:00
對 是圖二沒錯 只是你a2a5的位址標錯
作者:
nh60211as
2019-07-20 19:42:00
http://cpp.sh/2ysst
你試試這個程式碼,應該要看記憶體實際的內容不要猜他的記憶體位置塞了什麼東西最好的方法應該是找個可以看記憶體的debugger
作者:
loveme00835
(髮箍)
2019-07-20 19:49:00
宣告不佔記憶體
作者:
nh60211as
2019-07-20 20:02:00
更新一下
http://cpp.sh/9axh7
作者:
KaryuuIssen
(一閃)
2019-07-22 17:03:00
對齊問題 0x62fe40才能被8整除
繼續閱讀
[作品] 每天新聞資訊網站整理
IAMPF
[問題] lex reg 關鍵字之外的token如何表示
OfficeGL
[問題] 有人買過細談資料結構嗎
seal46825
[問題] shared_ptr 是否 atomic or thread safe
lovejomi
Re: [問題] zj e295. IO 優化
suhorng
Re: [問題] zj e295. IO 優化
firejox
[問題] zj e295. IO 優化
nevikw39
[問題] 範例程式碼無法執行
BASICA
[問題] 關於opencv 輸出的錄影檔
asdfg1597860
[問題] 透過system() 刪除檔案
jayzhuang
Links
booklink
Contact Us: admin [ a t ] ucptt.com