Я пишу этот код для Arduino. При компиляции я получаю сообщение об ошибке «В этой области не объявляется« сроки »(в строке рядом с нижней частью, где я пытаюсь распечатать время [i]), потому что я объявил массив внутри оператора if внутри цикла while Полагаю.
Если бы это была простая переменная, я мог бы просто объявить ее вне цикла, и это было бы исправлено, но проблема в том, что я знаю размер этого массива только один раз в операторе if.
void loop() {
while (Serial.available()) {
int inChar = Serial.read();
if (isDigit(inChar)) {
inString += (char)inChar;
}
if (!isDigit(inChar) && !timingExists) {
int timing[inString.toInt()];
inString = "";
timingExists = true;
}
if (!isDigit(inChar) && timingExists) {
timing[n] = inString.toInt();
inString = "";
n++;
}
}
n = 0;
for (int i = 0; i < (sizeof(timing) / sizeof(timing[0])) ; i++) {
Serial.println(timing[i]);
}
}