亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

求教macbook下顯示結果不太一樣?

mac下一個指針占據8個字節,實例化Circle類時對象大小應該 = (int) 4字節 + (int *)8字節=12字節才對吧,為啥結果是16呢,求教?

https://img1.sycdn.imooc.com//5b1d006d000155f916081322.jpg

正在回答

2 回答

C/C++ 語言中,編譯器為方便操作系統進行尋址和數據傳遞,struct 和 class 的數據成員存在內存對齊的問題。因此對對象進行 sizeof 不是數據成員的簡單相加,需要考慮編譯器的 padding 字節大小。

具體細節原理:如何理解 struct 的內存對齊? - Courtier的回答 https://www.zhihu.com/question/27862634/answer/38447033

供你參考 :)

0 回復 有任何疑惑可以回復我~

你用int*強制轉換了circle,它的數據成員也變成int*型的了,8+8=16

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C++遠征之多態篇
  • 參與學習       66224    人
  • 解答問題       334    個

本教程將帶領大家體會面向對象三大特性中的多態特性

進入課程

求教macbook下顯示結果不太一樣?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號