Задать вопрос
@IndusDev

Почему в Си допускается переполнение массива?

Столкнулся с проблемой.
Почему строковый массив может переполняться без какой-либо ошибки?
При объявлении, например, char c[10], я могу дать значение c[12] и вывести его. Почему так происходит?
  • Вопрос задан
  • 1133 просмотра
Подписаться 2 Оценить Комментировать
Ответ пользователя ralaton121 К ответам на вопрос (6)
@ralaton121
Потому что это идеология такая у Си.
Си - это как бы ассемблер, но чуть поудобнее. И все на ответственность программиста.

Дополнительные проверки можно включить в настройках компилятора. Но это заметно влияет на производительность. Впрочем, для очень многих задач - разница не критична.

Как вариант - используйте "статические анализаторы".
Они проверяют код на подозрительные места не во время исполнения, поэтому можно и скорость максимизировать и ошибок избежать.
Ответ написан
Комментировать