我假发呢丶 2017-07-20 03:39 采纳率: 0%
浏览 774

关于C语言结构体内存的问题,求帮助

struct P1
{
    int a;
    int b;
    double c[10];
};
struct P2
{
    int a;
    int b;
    char c[10];
};

sizeof(struct P) , P1结果是88 P2的结果是20.
为什么会这样?

  • 写回答

3条回答 默认 最新

  • threenewbee 2017-07-20 03:51
    关注

    第一个4+4+8*10=88
    第二个4+4+10=18,但是编译器按照4字节对齐,所以向上取4的倍数20

    评论

报告相同问题?

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境