最近刚学习到结构体的大小问题,就跑了一下代码(windows系统下),然后发现Clion和Vs中关于string的长度结果有出入。这是我测试过后得到的结果。
佬们,求解为什么会有这样的差异,如果遇到一个填空题让我填写sizeof(std::string)的长度问题,我该如何作答呢?
初学勿喷。感谢各位!
最近刚学习到结构体的大小问题,就跑了一下代码(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()函数计算。
可以看看下面的连接: