У меня возникла проблема с передачей char*
массиву char**
на моем Teensy.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' снова и так' fuzzyRulesSingle [J] 'всегда указывает на такое же место. Вам нужно скопировать символы в 'temp' в' fuzzyRulesSingle [j] '- сначала выделить пространство. –
Можете ли вы показать нам определение объекта fuzzyRulesSingle. Является ли это массивом указателей или массивов? – rozina