类对象内存大小计算

题目总版

输出结果竟然是40
by TheSkyFuker @ 2024-04-07 17:42:34


构造不算? @[TheSkyFuker](/user/1274996)
by czx6666 @ 2024-04-07 17:49:05


@[TheSkyFuker](/user/1274996) string 不是4字节,在你这里应该是 32 字节。你怎么不 sizeof string 一下呢?
by Terrible @ 2024-04-07 17:52:44


[baidu](https://answer.baidu.com/answer/land?params=mCTJzEY70P6OtVAbAENWTXIZz0oRGNYwQBfi6ld2MzLQOgNw%2Fjn1tC%2B0KWD1xQCRtX%2Bqn2APfr7FaerPmQG79OLrzzUWQyrd4IoAG1rrQ5%2FtNcudBWsz%2BspnZeGvEg2wafBc%2FWLK3r1iTJrDWhKI5zcElBMYEdCpRsRdMeqmpyrzGMTbbJOU7FJnHVZzMqNunO8pVXPp33w%2FWRDi698HSQ%3D%3D&from=dqa&lid=9e9358ec00211d97&word=%E7%B1%BB%E7%9A%84sizeof%E6%80%8E%E4%B9%88%E7%AE%97)
by czx6666 @ 2024-04-07 17:53:17


@[Terrible](/user/195942) 原来如此!多谢!!!完全没料到string这么大哈哈哈哈
by TheSkyFuker @ 2024-04-07 17:55:28


刚才实验了一下,我这里的string是24字节 好奇怪 那4+24+1=29 是如何对齐到40的呢
by TheSkyFuker @ 2024-04-07 18:00:08


@[TheSkyFuker](/user/1274996) string 的对齐长度是 8?这样就是 8+24+8=40 了
by ACaCaca_ @ 2024-04-07 18:01:56


你看一下[baidu](https://answer.baidu.com/answer/land?params=mCTJzEY70P6OtVAbAENWTXIZz0oRGNYwQBfi6ld2MzLQOgNw%2Fjn1tC%2B0KWD1xQCRtX%2Bqn2APfr7FaerPmQG79OLrzzUWQyrd4IoAG1rrQ5%2FtNcudBWsz%2BspnZeGvEg2wafBc%2FWLK3r1iTJrDWhKI5zcElBMYEdCpRsRdMeqmpyrzGMTbbJOU7FJnHVZzMqNunO8pVXPp33w%2FWRDi698HSQ%3D%3D&from=dqa&lid=9e9358ec00211d97&word=%E7%B1%BB%E7%9A%84sizeof%E6%80%8E%E4%B9%88%E7%AE%97)
by czx6666 @ 2024-04-07 18:02:20


加上 ```cpp #pragma pack(4) ``` 更改一下内存方式,可能就算准了。
by Terrible @ 2024-04-07 18:11:31


@[czx6666](/user/1056023) 这里没有虚函数、派生、继承等东西,类的对象里面一般不会记录本类函数的指针吧?所以你发的东西似乎并没有提供额外的有效信息?
by Terrible @ 2024-04-07 18:13:53


| 下一页