欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

结构体变量占用内存空间

终极管理员 知识笔记 98阅读

结构体内存存储空间分配的原则是什么?

答:首先详细的给出 结构体内存 存储空间 分配 的原则吧:编译器按照成员列表顺序一个接一个地给每个成员 分配内存 。 只有当存储成员时需要满足正确的边界对齐要求时,成员之间才可能出现用于填充的额外 内存 空间。

struct内存原则是什么?

答:struct内存原则: 从上至下进行内存分配,对齐方式以 当前分配到的 内部成员类型 最宽字节数 为基准;整体以结构体成员最宽类型字节为基准,且整个结构体的总大小为最宽基本类型成员大小的整数倍。 接着对 int c 进行内存分配,发现c占4个字节,则以4个字节为基准对齐,因为之前 a、b 内存共计为4个字节刚好与“4个字节的基准”一致,则此时 struct A 共计8个字节内存。 内存补充步骤略,参考上面的分配流程。 最后对 int c 分配四个字节,此时基准为4个字节,则需对上面6个字节进行补充两个字节;总计12个字节。 仔细设计结构中元素的布局与排列顺序,使结构容易理解、节省占用空间,并减少引起误用现象。 说明:合理排列结构中元素顺序,可节省空间并增加可理解性。

结构体中的各个成员在内存中应该连续储存吗?

答:理论上,结构体中的各个成员在内存中应该是连续储存的,就像数组里面的元素一样。 事实上,也确实是这个样子的,不过和我们想象的有点不一样。 按照我们最初的想法,变量test所占的内存为 4 + 1 + 4 = 9。

声明:无特别说明,转载请标明本文来源!