从char []移动到const char时丢失字节*

时间:2014-04-27 00:13:53

标签: c++

我有一个字符数组,其中包含以下字节:

output[0]         = 0
output[1]         = 0
output[2]         = 4
output[3]         = -46
output[4]         = 0
output[5]         = 0
output[6]         = 0
output[7]         = 0

当我将此数组作为第二个参数传递给以下函数时

this->refServer->Transmit(ConnectionId,output);

void Server::Transmit(int ConnectionIndex, const char* MessageToSend)

数组变为null。我猜这个数组在转换为const char *到第一个空字符时被修剪,但我不知道如何在不改变输出字节的情况下阻止它。

1 个答案:

答案 0 :(得分:2)

char[]const char*的转换是无操作的,不是原因。

在您的情况下,问题很可能是Server::Transmit期望缓冲区是以空字符结尾的字符串。因此它将第一个零字节(它是数组的第一个元素)视为消息的结尾。所以你不能用这个实现发送一个零字节。

您需要更改Transmit实现,以便在那里传递一段消息,或者为零值创建一个转义方案(从而更改传出的字节)。