为什么
CString tmp;
strcpy((char*)(LPCSTR)tmp,"sfsjffsj");
这个是正确的呢???
他的形式不是和以下情况一样吗?
char* tmp;
strcpy(tmp,"ksfkjskfsk");
但是这个却是错误的,内存没有分配。
谁说一下CString的内存分配机制???
CString tmp;
strcpy((char*)(LPCSTR)tmp,"sfsjffsj");
这个是正确的呢???
他的形式不是和以下情况一样吗?
char* tmp;
strcpy(tmp,"ksfkjskfsk");
但是这个却是错误的,内存没有分配。
谁说一下CString的内存分配机制???
char* tmp 没有分配存储空间就使用了,所以不对。
strcpy((char*)(LPCSTR)tmp,"sfsjffsj");这句因该这样用
tmp = "sfsjffsj" 或 tmp.Format(....)
CString tmp;
strcpy((char*)(LPCSTR)tmp,"sfsjffsj");
这个是对的,因为(char*)(LPCSTR)tmp根本就没有分配空间???????
形如:
CString tmp(_T(""));
strcpy(tmp.GetBuffer(0),"sfsjffsj");
tmp.ReleaseBuffer
char *szTemp = NULL;
szTemp = new char[100];& szTemp =new char;
strcpy(szTemp,"sfsjffsj")
delete ....;
CString 是一个类,构造函数会自动分配内存并初始化
char * 只是一个简单的指针而已,当然不能不初始化而直接使用。