结构体的内存大小是其最大元素所占内存的整数倍,因为结构体变量中元素是按照定义顺序一个一个放到内存中去的,但并不是紧密排列的。从结构体存储的首地址开始,每一个元素放置到内存中时,它都会认为内存是以它自己的大小来划分的,因此元素放置的位置一定会在自己宽度的整数倍上开始(以结构体变量首地址为0计算)。
如结构体exam的内存分布图如下
struct Exam{
char a;
int b;
double c;
}exam;
结构体的内存大小是其最大元素所占内存的整数倍,因为结构体变量中元素是按照定义顺序一个一个放到内存中去的,但并不是紧密排列的。从结构体存储的首地址开始,每一个元素放置到内存中时,它都会认为内存是以它自己的大小来划分的,因此元素放置的位置一定会在自己宽度的整数倍上开始(以结构体变量首地址为0计算)。
如结构体exam的内存分布图如下
struct Exam{
char a;
int b;
double c;
}exam;
转载于:https://my.oschina.net/jlongtian/blog/818062