char数组的副本如何工作? 当我将字节数组复制到char数组时出错了。 我有以下代码:
void onIncomingMQTT_CMD(char* topic, byte* payload, unsigned int length) {
char a[length];
int i;
String s = "";
for(i=0; i<length; i++) {
a[i] = (char)payload[i];
s = s + (char)payload[i];
}
//message_buff[i] = '\0';
logToMQTT(s + "[payload]");
a[i] = '\0';
logToMQTT(a);
char b[length];
int j;
String d = "";
for(j=0; j<length; j++) {
b[j] = (char)payload[j];
d = d + (char)payload[j];
}
//message_buff[j] = '\0';
logToMQTT(d + "[payload2]");
b[j] = '\0';
logToMQTT(b);
我预计数组a
和b
会相同。但是在日志输出中,我看到第一个[payload]
是正确的。但第二个[payload2]
是不同的。它显示了主题中的字符。
ON[payload]
we[payload]
从byte
数组到char
数组的副本有什么问题?