一、calloc底层探索
1.1、内存对齐原则
a:数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一数据成员放在offset为0的地方,以后每个数据数据成员储存的起始位置要从该成员大小或者成员的子成员大小(只要该成员有子成员,比如说数组、结构体等)的整数倍开始(比如int为4字节,则要从4的整数倍地址开始存储。)
b:结构体作为成员: 如果一个结构里有某些结构体成员,则结构体成员要从其内部最大元素大小的整数倍地址开始存储。(struct a 里存有struct b ,b里面有char,int,double等元素,那么b应该从8的整数倍开始储存)
c:收尾工作: 结构体的总大小,也就是 sizeof 的结果,.必须是其内部最大成员的整数倍.不足的要补⻬
下面定义2个结构体打印如下图:
字节对齐# 待续
<big>大</big>
网友评论