C ++ Arduino передает char * в массив char *

У меня проблема с прохождением char* к массиву char** на моем Teensy.

Ниже проблемная часть:

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**) будет заполнен переменной tempchar*). Как я увеличиваю jследующий адрес в fuzzyRulesSingle будет заполнен новым temp,

Тем не менее, когда я печатаю fuzzyRulesSingle ВНЕ кода выше, все fuzzyRulesSingle будет заполнен последним значением темп.

Где я ошибся?

0

Решение

Вы указываете fuzzyRulesSingle[j] к временному массиву символов temp,
Простой способ исправить это — изменить fuzzyRulesSingle[j] = temp; в strcpy(fuzzyRulesSingle[j], temp) и изменение декларации fuzzzyRulessSingle до необходимого размера.

ИЛИ ЖЕ

Вы можете объявить temp увеличьте цикл и используйте malloc выделить необходимую память, а затем назначить ее fuzzyRulesSingle[j]

1

Другие решения


По вопросам рекламы [email protected]