为了账号安全,请及时绑定邮箱和手机立即绑定

共用体所占内存大小问题

#include

union data{    int a;    char b;    char c[5];    int d; }; int main() {    union data dd = {10};    dd.b = 'a';    printf("___SIZE____ %lu\n", sizeof(dd)); } //这里我输出共用体的大小是8而不是5 是不是共用体内存大小也是要对齐的?

正在回答

2 回答

c++有一个对齐机制,申请的内存应该是某一数的整数倍,在这里是4,所以只能是8

1 回复 有任何疑惑可以回复我~
#1

一起沉默2626 提问者

非常感谢!
2017-05-08 回复 有任何疑惑可以回复我~

是,这点和结构体类似。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

共用体所占内存大小问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信