我有一个结构定义为:
struct smth
{
char a;
int b[];
};
当我调用这个结构sizeof
时:offsetof
cout << sizeof(struct smth) << endl;
cout << offsetof(struct smth, b) << endl;
输出是:
4
4
为什么stuct的大小为4,char使用1字节,int数组的偏移量为4?为什么会有某种填充?另外,为什么 int 数组根本不占用任何空间?