私のコード:
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
1つのfloat、1つのint、および1つのintへのポインターがあります。私の頭の中で私は考えています:4 + 4 + 8 = 16 ... 24ではありません。なぜ私の構造のサイズは16ではなく24なのですか?