【发布时间】:2013-10-30 14:06:04
【问题描述】:
我正在尝试使用memcpy() 将CString 复制到char*,但我很难做到。实际上,只复制了第一个字符。这是我的代码:
CString str = _T("something");
char* buff = new char();
memcpy(buff, str, str.GetLength() + 1);
在此之后,buff 包含的所有内容都是字母 s。
【问题讨论】:
-
你不想
strcpy吗? -
您只为 1 个
char分配空间。然后,您尝试复制CString对象,而不是其包含的缓冲区。 -
小心,
_T()可以根据某些预处理器变量创建基于wchar_t而不是char的UNICODE 字符串。memcpy()对此一无所知,总是复制字节。