我有下一个代码:
#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 个整数 + 1 个字符 = 2 * 4 个字节 + 1 个字节 = 9 个字节。
为什么是 12 ???