Ви не увійшли.
Все потому что массив это по сути указатель на адрес первого элемента и вы обращаетесь к адресу, в котором может содержаться все что угодно.
Пользуйтесь статическим анализатором, они такое обнаруживают.
Сейчас столкнулся с одной своей ошибкой которую отладить не так то просто было. Почему компилятор не проверяет на наличие ошибок, если присвоить значение индексу массива, который не в его диапазона?
char model[8];//8 - размер массива в байтах
bool test = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
model[8] = 'n';//ошибка, индекс массива начинается с нуля и заканчиваться должен на 7
Serial.print(F("test = "));
Serial.println(test);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.print(F("test = "));
Serial.println(test);
delay(1000);
}
Воспроизвести эту ошибку в этом примере не получилось, но случилось следующее, в процессе работы моего огромного скетча на Raspberry Pi Pico , булевая переменная test, начала неожиданно принимать значение = 10. Потратил кучу времени что бы найти в каком месте скетча это может происходить, хорошо хоть вспомнил, что недавно делал и по горячим следам нашел виновника.