這是一個基本問題,但我找不到明確的答案。希望有人能夠闡明一些看法。陣列佔用的內存空間
我想知道一個數組佔用多少內存空間。
做多個不同類型的數組,但具有相同的組合字節大小佔用相同數量的內存?
數組是否佔用與多個相同大小的數組相同的內存空間?
一些例子:
(在我的系統8051微控制器, char = 1 byte;
int = 2 bytes ;
float = 4 bytes;
)
//case 1
char array_nr1[40];
//case 2
char array_nr1[10];
char array_nr2[10];
char array_nr3[10];
char array_nr4[10];
//case 3
int array_nr1[10];
int array_nr2[10];
//case 4
float array_nr1[10];
//case 5
char array_nr1[10];
int array_nr2[5];
float array_nr3[5];
做對照組5例採取的內存(40個字節)一樣多嗎?是否有任何其他數據存儲在內存中(例如陣列基地址)
謝謝。
沒有任何「填充」,「優化」和「包裝」,理論上,是的。 – 2014-11-21 12:14:19
「一個案件」到「記憶」是什麼意思?如果每個對象都有存儲空間,則每個對象都需要內存,但是否需要任何內存取決於您的操作。如果該對象從未被引用,編譯器可能會選擇不爲其分配任何存儲。你可以問的唯一明智的事情是每個對象的*大小*。 – 2014-11-21 12:17:23
你確定你是正確的嗎? int通常需要4個字節的空間,所以每個10個int的兩個數組需要80個字節,而不是40個 – 2014-11-21 12:17:56