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