iT邦幫忙

0

如何計算sizeof struct

  • 分享至 

  • xImage
struct some_data {
    char * name;
    char student_id[10];
    float * grade_list;
}

如果sizeof(char)==1,sizeof(void)==8,struct不補充(padding),那請問如何計算sizeof(struct some_data)?
a) 36
b)96
c)28
d)26

都是指針,我猜大小應該是 24

居然忘記陣列直接乘就好XD,還以為是陷阱題
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
EN
iT邦好手 1 級 ‧ 2021-03-06 13:38:56
最佳解答

程式問題就寫程式解決吧!
我的作業系統是 64 位元的,所以每個指標的大小是 8 bytes 。
如果不做 Padding ,那大小就是:
8 + 10 x 1 + 8 = 26 bytes。

  • 原始碼:
    https://ithelp.ithome.com.tw/upload/images/20210306/201108500jeVqA0hGg.png
  • 結果:
    https://ithelp.ithome.com.tw/upload/images/20210306/20110850yiEbjW0rRV.png

Reference

EN iT邦好手 1 級 ‧ 2021-03-06 13:42:25 檢舉

如果有回答到你的問題,希望可以給我正解 >_<

我要發表回答

立即登入回答