如题,CString的大小是不是能通过sizeof来获取,而长度是不是能通过getlength来获取?
解决方案 »
- 广州干VC快2两年了,工资5000怎么样,要换么
- 求助:SDI分割窗体
- 有谁知道CWindowWnd是什么
- 急!!屏保问题,做过屏保的朋友请进
- 问:基于MFC的ActiveX控件能在VB、JAVA等平台上使用吗?
- 如何利用VC读取BMP图片中每一个像素的R,G,B颜色分量,并输出保存成*.txt文件(是作业,紧急!!!)
- 再次询问关于ON_UPDATE_COMMAND_UI在对话框中处理右键快捷菜单的问题
- ODBC增加记录的怪问题!!!!
- 用ADO连接,新增记录方法选择的问题,法1:用Open("SQL insert into语句"....)法2:用AddNew。具体用谁好?祥情进来,有例子
- 一条很长的VC代码,如何把它分行为多行的语句
- 求助:用API如何实现鼠标出边框后滚动条自动滚动
- 用windbg的查看内存泄露
sizeof得到的应该不对吧
其实对字符串来说,一般不用sizeof计算长度
sizeof(CString)是CString这个类所占内存的大小。
CString.Getlength()是CString中字符串的长度。
CString strTemp = _T("fjdakljfdajfd");
int len = strTemp.GetLength();一般来说,CString会自动给对象分配一定长度的字符空间,例如32字节、64字节或者128字节,不管你用不用这么多,不够的时候再重新分配。但是,这个对我们编程来说没有意义,我们一般值关心当前字符串的长度。也就是strTemp.GetLength()
{
char *ch;//指向一个char空间
int len;//记录了ch所指向的空间中,实际保存的字符的长度
int maxlen;//记录了ch指向的空间的大小
public:
int GetLength()
{
return len;
}
};
sizeof(A);得到的就是类A的成员变量所占的空间之和。在这个例子中,其得到的值为12字节。(其中还涉及了成员变量的对齐问题)
GetLength()就不用多说了吧。