我有一个字符缓冲区,用于通过网络发送消息。我使用memcpy序列化了一个整数,因此缓冲区中有一些空字符。目前,我将缓冲区声明为char数组,并使用序列化例程将结构m中的数据打包到其中
sendline = new char[256];
serialize(m, sendline);
void serialize(myMsg &m, char* out)
{
uint16_t seq = htons(m.seq);
memcpy(out, &m.type, sizeof(m.type));
memcpy(out + sizeof(m.type), &seq, sizeof(seq));
memcpy(out + sizeof(seq) + sizeof(m.type), m.data.c_str(), m.data.length());
}
我的问题是 - 我可以在这里使用字符串而不是字符数组吗?我尝试使sendline成为一个字符串,但它会终止第一个空字符的缓冲区。