首页 > 代码库 > VisualStudio下std::string的内存布局
VisualStudio下std::string的内存布局
主要成员
?
1 2 3 4 5 6 7 8 | union _Bxty { // storage for small buffer or pointer to larger one _Elem _Buf[_BUF_SIZE]; _Elem *_Ptr; } _Bx; size_type _Mysize; // current length of string size_type _Myres; // current storage reserved for string |
其中,_Bx保存着string的真正成员,如果string长度在16以内,可以直接存放到string对象的内部;
否则,_Bx._Ptr保存存放真正内容的指针;
当string长度增长时,会重新分配更大的内存空间,并且将原来的字符串拷贝至新分配的空间中去。
在Visual Studio下,sizeof(str1) = 0x00000020 = 32个字节
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。