本帖最后由 dojimmy 于 2015-11-30 22:21 编辑
我们知道结构体的内存老师可能讲得很复杂,有部分同学可能听不明白,这里给大家讲一种比较特殊的方法,能帮大家通熟易懂的理解。
首先我们都知道我们在初中或者小学学的公倍数,先根据结构体内最大的一个元素,那么公倍数就是最大元素所占的字节数,结构体占的字节数就是公倍数的整数倍。后面的元素占的字节数先分配最大元素字节数,然后小的补齐,不够再分配。
例如:struct Person{int *name;int age;char c;};
公倍数为8个字节,先为后面的age分配8个字节,然后age占不了8位,剩下的就是c占有的字节,总占16个字节;
例如:struct Person{int *name;int age;int *detail;};
同理,公倍数8,第二个age占不了8个,但是后面的detail又不够,所以重新分配8个字节给detail,也就是24个字节。
如有错误,请见谅,大家好好学习!
|
|