Вступить в клуб →
лёгкаявопросБиты, целые типы и арифметика на МК

Цикл заполнения буфера из 300 элементов никогда не заканчивается

uint16_t samples[300];

for (uint8_t i = 0; i < 300; i++) {
    samples[i] = adc_read();
}

Устройство зависает на этом цикле, а данные в samples[256] и дальше не записываются. Почему?

  • uint8_t не достигает 300 и после 255 станет 0
  • Массив из 300 элементов не помещается в стек
  • adc_read() блокируется после 255 вызовов
  • Индекс массива обязан иметь тип size_t

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела