码迷,mamicode.com
首页 > 其他好文 > 详细

VisualStudio下std::string的内存布局

时间:2014-06-06 18:22:13      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:c   class   blog   code   a   int   

主要成员

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个字节

VisualStudio下std::string的内存布局,布布扣,bubuko.com

VisualStudio下std::string的内存布局

标签:c   class   blog   code   a   int   

原文地址:http://www.cnblogs.com/long123king/p/3766200.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!