结构体所占的内存由结构体里的成员决定

int型占4字节

char型占1字节

float型占4字节

double型占8字节

指针*占4字节

但在结构体中所占的内存并不是所有成员所占字节之和,而是有一定规律

以程序为例:

结构体所占内存

此时结构体的内存就是一个字节

结构体所占内存

加一个char型的成员

结构体所占内存

结果为两个字节

结构体所占内存

如果再加入一个int型成员

结构体所占内存

结果就是8个字节

结构体所占内存

如果将成员顺序调一下

结构体所占内存

结果就变成12个字节

结构体所占内存

由此总结一下结构体内存分配规律

成员变量与结构体的起始地址的偏移量一定是成员变量长度的整数倍,结构体的长度是最长成员长度的整数倍。

相关文章: