0
我在通過char*
到Teensy上的char**
數組時遇到問題。C++ Arduino將char *傳遞給char數組*
下面是問題的一部分:
for (j = 0; j < rulesamountsingle; j++) {
emptybuffer(buff);
char temp[10];
while(!Serial.available());
len = Serial.available();
for (i = 0; i < len; i++) {
temp[i] = Serial.read();
}
temp[len-1] = 0;
fuzzyRulesSingle[j] = temp;
Serial.print(fuzzyRulesSingle[j]);
Serial.print('\n');
}
正如你所看到的,fuzzyRulesSingle[j]
(其中fuzzyRulesSingle
是char**
)將由可變temp
(一char*
)來填充。當我遞增j
時,fuzzyRulesSingle
中的下一個地址將填入新的temp
。
但是,當我在上面的代碼的外面打印我的fuzzyRulesSingle
時,所有fuzzyRulesSingle
都將被填充最後一個temp值。
我哪裏出錯了?
我們重用'temp'遍地所以'fuzzyRulesSingle [J]'總是指向同一個地方。您需要將'temp'中的字符複製到'fuzzyRulesSingle [j]'中 - 先分配空間。 –
你能告訴我們fuzzyRulesSingle對象的定義嗎?它是一個指針或數組的數組? – rozina