开发者社区> 问答> 正文

C++内存问题,主要是关于对象占用内存,有些糊涂,敬请指导。

#include
class stu
{
private:
int a;
double c;
char p;
};
struct tea
{
int a;
int b;
};
int main()
{
stu st;
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(double));
printf("%d\n", sizeof(char));
printf("%d\n",sizeof(st));
tea te;
printf("%d\n", sizeof(te));
}
代码如上,结果是:
4
8
4
24
8

64位机器下 visual studio 2013结果,
不太明白,为什么类会多出来8个字节。

展开
收起
a123456678 2016-03-04 17:00:15 1871 0
1 条回答
写回答
取消 提交回答
  • 这个类的大小计算要字节对齐,类中最长的为double型8个字节,前后两个int都不足8字节,编译器会加上填充字节,3个8字节加起来就是24字节了 而不是实际的16字节.

    2019-07-17 18:52:34
    赞同 展开评论 打赏
问答分类:
C++
问答地址:
问答排行榜
最热
最新

相关电子书

更多
C++对象模型 立即下载
对象的生命期管理 立即下载
使用C++11开发PHP7扩展 立即下载

相关实验场景

更多