小编way*_*orc的帖子

结构体数组占用的空间

我对《计算机系统:程序员的视角》 (第 3 版(2015 年 10 月 6 日))一书的问题 3.44 有关数据对齐的问题有疑问。

问题:

对于以下每个结构声明,确定每个字段的偏移量,即结构的总大小,以进行 8 位对齐:

struct P1 {short i; int c; int *j; short *d}
...
struct P4 {char w[16]; char *c[2]}
struct P5 {struct P4 a[2]; struct P1 t}
Run Code Online (Sandbox Code Playgroud)

书中给出的答案:

  • 结构P1:
C j d 全部的
0 2 6 14 16
  • 结构P4:
w C 全部的
0 16 32
  • 结构P5:
A t 全部的
0 24 40

我不明白的是为什么 did struct P4 a[2]inP5只需要 24 个字节?
既然P5.a是一个大小为2的数组P4 …

c memory-alignment

0
推荐指数
1
解决办法
84
查看次数

标签 统计

c ×1

memory-alignment ×1