读书人

C++中为啥sizeof(string)是32

发布时间: 2012-06-25 18:37:39 作者: rapoo

C++中,为什么sizeof(string)是32?
请教 :
string str="str";
cout<<sizeof(str)<<endl;
cout<<sizeof(string)<<endl;
为什么这两个值都是32呢?
(注:我是在VS2005中编译的,另外我的机器是64位的)

[解决办法]
举个例子,请楼主自行体会^_^

C/C++ code
class A{    pulic:    char * data;    A(int i){data = new char[i]};    ~A(){detele [] data};};int main{    A a(20);//a里面的data指向了一个长度为20的char数组哦^_^    cout<<sizeof(A)<<endl;//可是sizeof(A)只有4或者8,仅仅是一个char指针的大小^_^    return 0;};
[解决办法]
不好意思。刚没看清问题。

应该是这样的,string类中有一个指向字符串的指针,同时还有长度等等的记录,最终它所需要的空间是32

读书人网 >C++

热点推荐