当我尝试在其中放入另一个struct_a类型的struct数组时,我不明白struct_b的大小。我知道struct_a的大小是16个字节。但是当涉及到struct_b时,我假设应该有2 * 16 + 160 = 192字节,但实际上是184字节。你能解释一下吗?谢谢!
struct struct_a{
char id[5];
float f;
int n;
};
struct struct_b{
char name[24];
struct struct_a array[10];
};
答案 0 :(得分:1)
因为name
是char
类型。因此它是1
个字节,表示1 * 24 = 24 bytes
,sizeof struct_a
是16个字节。因此,16*10 = 160
。
这就是为什么sizeof struct_b
是184个字节的原因。
24 + 160 = 184 bytes.