- 结构体本来应该占用1(char)+4(int)=5个字节,但是为了对齐,实际上占了1(char)+3(补充)+4(int)=8个字节
- 这是因为计算机读取数据时,一般标准化4个字节读取,为了节约时间,牺牲3个字符大小的内存,以空间换时间
#pragma warning(disable:4996)
#include <stdio.h>
struct test {
char a;
int b;
};
int main(int argc, char *argv[])
{
struct test a = { 'a',1 };
struct test *p = &a;
printf("结构体内存空间:%d字节,起始地址:%x,结束地址:%x\n", sizeof(struct test),p,p+sizeof(struct test));
system("pause");
return 0;
}
参考:
https://www.jianshu.com/p/f47e1fadb78e
来源:CSDN
作者:Claroja
链接:https://blog.csdn.net/claroja/article/details/103714766