为什么string类对象大小总是32字节,而Cstring对象大小总是4字节啊

来源:百度知道 编辑:UC知道 时间:2024/05/29 00:49:48

如果用sizeof(CString)来获取的是CString这个类的大小。也就是CString类里的所有数据成员的大小。在CString里只有一个LPSTR类型的变量m_pszData。这是一个指针,用来指向存储的字符串的空间位置。所以是4字节。
string也是类似的。所以他们的大小不是所存储的字符串的大小。如果要获取他们所存储的字符串的大小,要调用他们相应的成员函数才可以。不能直接这样操作:
CString a(_T("hello"));
sizeof(a);这样是不对的。要改成a.GetLength();

那要看你是怎么操作的了。

sizeof (CString ) 一定就是4了。

获取字符串长度用他们提供的成员函数
Cstring::GetLength() 和
string::length()

你计算对像大小的方式一定有问题 不能用sizeof