关于Clion和Vs中string内存大小问题

img

最近刚学习到结构体的大小问题,就跑了一下代码(windows系统下),然后发现Clion和Vs中关于string的长度结果有出入。这是我测试过后得到的结果。

佬们,求解为什么会有这样的差异,如果遇到一个填空题让我填写sizeof(std::string)的长度问题,我该如何作答呢?

初学勿喷。感谢各位!

sizeof(std::string)得到的是string类型的大小,这个跟操作系统和编译器有关。
在32位机器的 vc6.0下sizeof(string) =16;但在VS2008下它是32.
win7 64位系统下,x86编译模式下大小是 32
win10 64位系统下,x86编译模式下大小是 28 ,x64编译模式下大小是40

如果要求字符串的长度,用length()函数计算。
可以看看下面的连接:

string本来就不能用sizeof来求长度啊,string有自己的length方法啊

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632