Во первых, потому, что устранить проблему - это уменьшить скорость работы кода.
C/C++ популярны во многом потому, что позволяют писать очень быстро работающий код. И никто не будет лишать эти языки этого преимущества.
Во вторых, в C/C++ нет массивов в том виде, в котором они существуют в других языках программирования. Операция [] - всего лишь синтаксический сахар для адресной арифметики:
a[i] эквивалентно *(a + i) эквивалентно *(i + a) эквивалентно i[a].
И массив в C/C++ - не набор значений известной длины, а лишь указатель на начало массива. Как ты будешь контролировать выход за границы, если не знаешь длину массива?
Другие языки программирования и технологии
Почему в С/С++ до сих пор не устранена проблема с выходом массива за границы?
Александр Чепелюк
не сложно изменить транслятор и завести поле с границами
"Традиционные" массивы типа a[] это так называемые C-массивы. Наследие C.
Вообще в C++ обычно используют array и vector и итерации над ними. С таким подходом выйти за пределы в ряде случаев "сложнее". Как раз array сделан на замену С-массивам.
Более того при обращении через at выкидываются исключения (пример + обработка исключений)
https://onlinegdb.com/kWHBEGwri
Собственно ссылки передача через ссылки параметров тоже уход от опасных указателей.
Так что не так мало сделано ;)
Вообще в C++ обычно используют array и vector и итерации над ними. С таким подходом выйти за пределы в ряде случаев "сложнее". Как раз array сделан на замену С-массивам.
Более того при обращении через at выкидываются исключения (пример + обработка исключений)
https://onlinegdb.com/kWHBEGwri
Собственно ссылки передача через ссылки параметров тоже уход от опасных указателей.
Так что не так мало сделано ;)
увеличит размер программного текста, то есть увеличит длительность вычислений.
приняли, что это не будут реализовывать.
приняли, что это не будут реализовывать.
Нафига? Это язык для взрослых дядь, тут ещё надо самому следить за памятью.
Уууух, блин, молодежь пошла. Ассемблеров на вас не хватает!
Если надо - используй классы контейнеры. Тож же вектор например.
Самому можно эксэпшэн сделать через try - catch
Похожие вопросы
- Почему до сих пор не создан математический архиватор?
- Проблема с инициализацией массива объектов.
- Кто из вас до сих пор пользуется старыми кнопочными телефонами ?
- Почему в ВУЗах до сих пор преподают Pascal, несмотря на то что лучшим языком считается C?
- Почему Delphi 7 до сих пор так популярна?
- Почему до сих пор, в мире не создана программа-диагност патологий человека?
- Аудитория интернета уже далеко не школьники с нулевым уровнем дохода. Но почему до сих пор никто не хочет платить
- Почему до сих пор кто-то учит C, Java, C++ и JavaScript?
- Почему в школах до сих пор учат турбо паскаль?
- Что обозначает слово "бот".Встречаю его в опросах.До сих пор не понимаю смысла.