點擊圖片可放大
C語言用sizeof計算struct記憶體的大小時,要注意4倍對其的狀況
如下圖
s1實際上只有宣告786個byte,但是786不會是四的整數倍,所以實際上會占用788個byte的空間
若直接for迴圈 sizeof(s1) +printf印s1的全部data,就會印超出2byte的data,要指標塞東西或是記憶體複製時就有可能產生狀況
沒有留言:
張貼留言