Превышение границ массива Arduino Uno

Здравствуйте!
При обучении массивам я столкнулся с такой ситуацией:

const byte size_1 = 3;

int array_one[size_1] = { -3, 12, 12};

void setup() {
  Serial.begin(9600);
}

void loop() {
  for (int i; i <= 5; i++) {
    Serial.println(array_one[i]);
    delay(1000);
  }
}

Я решил вывести на экран несуществующие символы массива и вот что я получил на выходе:

-3
12
12
2573
0
-30696

Почему так происходит? Объясните, пожалуйста!

Потому что в ячейках памяти следующих за массивом содержатся эти данные

1 лайк

Вопрос по первому сообщению.
Тролль 80 уровня? Кому-то скучно в пятницу и он новый акк создал? :upside_down_face:

Если ошибаюсь, вопрос к ТС, откуда взяли такое условие в 10 строке i <= 5? В чём его смысл для Вас?

1 лайк

Уточните вопрос, пожалуйста.
Что Вам не понятно?

Почему что-то печатается?
Или почему печатаются именно эти значения?
Или вопрос в чем-то другом?

1 лайк

Ну, как почему? Сегодня 18-ый лунный день и 16-ый солнечный. Луна убывающая, Солнце в Стрельце, днём владеет Венера! При таком сочетании и не такое случается.

Аффтарр жжёт!
Зачем объявлять переменную в размер массива, если потом её не использовать?

Магнитная буря мешает массивам …

1 лайк

Ну если без юмора, моё ИМХО потому что Вам нужно более внимательно изучать массивы и циклы заодно повторить и инициализацию переменных.

И всю книгу по С++, в том числе.

+1. С учетом банальности троллинга, подозрение сразу падает на одного из активных участников )

Специалиста по ассемблеру со стажем в 105 лет?

Нее, я про одного старожила

Колитесь!

1 лайк

то-есть загонять иголки под ногти он будет сам?

Побойтесь бога программистов.

Опять я чтоли? Вторую пятницу подрят? (((

1 лайк

У него явка в повинной оформилась уже))
Всем субботы))

Шаббат шалом!

ВоистЕну шалом!

Проблема, как всегда, в дилэе.

1 лайк