私は次のコードを持っています:
#include <stdio.h>
#include <stdlib.h>
typedef struct Test
{
int a;
int b;
char c;
} Test;
int main(void)
{
Test *obj = (Test*)malloc(sizeof(Test));
printf("Size results:\r\n\r\nstruct: %i\r\nint #1: %i\r\nint #2: %i\r\nchar #1: %i\r\n",
sizeof(Test), sizeof(obj->a), sizeof(obj->b), sizeof(obj->c));
return 0;
}
結果は次のとおりです。
サイズ結果:
構造体: 12
整数 #1: 4
整数 #2: 4
文字 #1: 1
構造体サイズが12バイトなのはなぜですか??? int - 4 バイト char - 1 バイト
2 int + 1 char = 2 * 4 バイト + 1 バイト = 9 バイト。
なぜ 12 ???