类中的内存对齐有关问题 结果为16 求解答
类中的内存对齐问题 结果为16 求解答C/C++ codeclass personame{private:char a[10]int b// char a[10]
类中的内存对齐问题 结果为16 求解答
C/C++ codeclass personame{ private: char a[10]; int b; // char a[10]; public: personame(int c) { b = c; }};personame p(1);cout << sizeof(p) << endl;
按照内存对齐的原则 第一行是10 第二行是4
应该是 10*2 或者 12*2 吧 用Gcc的结果是16 求解答
谢谢~~~
[解决办法]可能是这样了:
char a[10]; //对齐之后为12字节
int b; //4字节
一共16字节
[解决办法]char a[10]是10个字节,
int b 为4字节。
加在一起,14字节。 但编译器是不允许的。 会再添加两个字节。
16字节,凑整。 你就是a[12]也是 16字节, 如果你是a[13]的话, 就又是20字节了。,好像是这样的道理。!
[解决办法][解决办法](10+2)+4
[解决办法]