Вступить в клуб →
лёгкаявопросСовременный C++: move-семантика, шаблоны, лямбды

Буфер на 10 нулей оказался вектором из двух элементов

std::vector<int> buf{10, 0};
for (size_t i = 0; i < 10; ++i) {
    buf[i] = read_sample();
}

Санитайзер AddressSanitizer сообщает о записи за границу контейнера на i = 2. Почему?

  • Фигурные скобки создали вектор из 10 и 0
  • Конструктор не выделяет память до push_back
  • Фигурные скобки создают пустой вектор с ёмкостью
  • operator[] не работает на векторе без reserve

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

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

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

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