目前我正在进行作业并首次使用C ++。 我试图将某些“消息类型”附加到字符串的开头,因此当发送到服务器/客户端时,它将根据消息类型处理字符串。我想知道我是否能够将任何两位数整数放入消息缓冲区的元素中....见下文。
我在下面留下了一段代码:
char messageBuffer[32];
messageBuffer[0] = '10'; << I get an overflow here
messageBuffer[1] = '0';
for (int i = 2; i < (userName.size() + 2); i++)
{
messageBuffer[i] = userName[(i - 2)];
}
谢谢=)
答案 0 :(得分:1)
消息缓冲区是一个char数组。索引0包含一个char,因此您不能将2个字符放入一个char中。这违反了一位包含一个二进制数字的规则: - )
正确的解决方案是:
messageBuffer [0] = '0';
messageBuffer [1] = '1';
或:
messageBuffer [1] = '0';
messageBuffer [0] = '1';
或
messageBuffer [0] = 10;
答案 1 :(得分:1)
'10'不是有效值,因此溢出
在messageBuffer [0] = 10中写入10 - 如果10是你要放的值,或者像Lars写的那样写。