2013-07-22 51 views
0

我在32位操作系統上使用code :: blocks 12.11(gcc)。我有以下結構:模糊計算結構的大小

struct node 
{ 
int a; 
float b; 
char d; 
struct node* c; 
} 
s1; 

現在單獨地,

sizeof(int); sizeof(float); sizeof(char); 

分別給出輸出4 4 1個字節。 所以我計算結構的大小爲13個字節。 但是以下

sizeof(s1); or sizeof(struct node); 

給出輸出16字節。

我無法弄清楚爲什麼這樣。請幫我在這裏。 謝謝。

+1

計算機自動將內存對齊到某個邊界,以便奇數個字節仍然佔用「對齊」的某個範圍的內存。例如,我的結構爲1個字符,int和一個字符,可能需要8個字節。 – Magn3s1um

回答

1

將結構舍入爲32位(4字節)的塊。如果你增加了3個字符,它將是相同的大小。