我正在处理 C++ 套接字分配,并且正在尝试将字符串从服务器发送到客户端。
const char* msg;
msg = "test";
导致我的客户端打印test
到控制台,但是当我尝试以下操作时:
std::string msg;
std::getline(std::cin, msg);
打印的结果是乱码。在发送之前,我序列化了一个包含消息的结构并且消息是完整的。当我检查反序列化包时,消息被搞砸了。
我正在使用以下结构:
struct Package{
unsigned int package_type;
const char* msg;
int senderid;
int receiveid;
void SerializeData(char* _data){
memcpy(_data, this, sizeof(Package));
}
void DeserializeData(char* _data){
memcpy(this, _data, sizeof(Package));
}
};
知道为什么代码中定义的 const char* 有效,但 string.c_str() 无效吗?