c記憶體位元組對齊,c c 記憶體位元組對齊

2022-04-12 12:25:07 字數 863 閱讀 6307

1樓:l陽子

系統會給結構體分配連續記憶體,可以這樣理解,偏移量為你要儲存的資料長度的整數倍才可以,否則系統會自動填充。

你看看下面這個例子應該就明白了:

struct mystruct

;//所有成員變數都分配了空間,空間總的大小為1+7+8+4=20,不是結構

//的節邊界數(即結構中佔用最大空間的型別所佔用的位元組數sizeof

//(double)=8)的倍數,所以需要填充4個位元組,以滿足結構的大小為

//sizeof(double)=8的倍數。

所以該結構總的大小為:sizeof(mystruc)為1+7+8+4+4=24。其中總的有7+4=11個位元組是vc自動填充的,沒有放任何有意義的東西。

對了,補充一下參考地址,你可以看一下。

2樓:匿名使用者

記憶體對齊: 資料的地址必須是其size的整數倍

比如 int 記憶體必須是4的倍數

在上面的資料結構, int前面有4個(1+2+1),所以int是第5個, 不是4的倍數,所以編譯器會把int的第一個改到第9個, 這樣s1的長度就是8+4 = 12

3樓:緗虞幬

typedef struct //假如首地址是0x0000s1;

4樓:匿名使用者

和編譯器有關。我建議開始學的時候不要太糾結這樣的細節,先有了一個完整的學習後,去實際做做專案就明白為什麼了。

5樓:匿名使用者

short 是4位?

C盤記憶體小

汗,c盤怎麼增加記憶體估計沒人知道 那叫硬碟,根記憶體不同滴!算了,說一下,按照你目前的情況來看,電腦應該是160g的吧?去除系統等等佔用,實際可以用150差不多了,你的c盤應該裝了太多東西了,很多軟體是預設裝在c盤的,建議你解除安裝後裝在其他盤。然後就是垃圾箱,點垃圾箱的屬性可以調整垃圾箱佔用的硬...

C 中new分配記憶體的問題,C 動態分配記憶體 記憶體洩漏問題 new

這樣是會有記憶體洩漏的,因為第一次執行s new stu 後,系統申請了一塊新的記憶體空間 型別為stu 並把其地址賦給s 第2此執行s new stu後,系統又申請了一塊新的記憶體空間,並把其地址賦給s,此時把s原來的值覆蓋掉了,也就是第一次申請的記憶體空間的地址丟失了 而delete s 只是把...

什麼病毒吃C盤記憶體,什麼病毒吃C盤記憶體 100

系統還原的檔案吧,鉤掉 隱藏受保護的作業系統檔案,把系統還原檔案刪了 wahahaha好搞笑哦 長話短說 在開機時按f8進安全模式防毒 http it.rising.com.cn channels service 2006 08 1154786729d36873.shtml 可以下一個八月專殺 再下...