我的代码:
typedef struct {
int sizeOfMyIntArray;
int* myIntArray;
float someFloat;
} my_struct_foo;
int main() {
printf("The size of float is: %d\n", sizeof(float));
printf("The size of int is: %d\n", sizeof(int));
printf("The size of int* is: %d\n", sizeof(int*));
printf("The size of my_struct_foo is: %d\n", sizeof(my_struct_foo));
return 0;
}
我想这很简单。虽然,我对这个程序的输出结果有点惊讶......
The size of float is: 4
The size of int is: 4
The size of int* is: 8
The size of my_struct_foo is: 24
我有一个浮点数、一个整数和一个指向整数的指针。在我的脑海中,我在想:4 + 4 + 8 = 16...不是 24。为什么我的结构的大小是 24 而不是 16?