Форум программистов, компьютерный форум CyberForum.ru

"Неопределенное поведение" при выходе вводимых данных за пределы массива - C++

Восстановить пароль Регистрация
 
Nikcharn
 Аватар для Nikcharn
71 / 53 / 3
Регистрация: 31.07.2009
Сообщений: 149
20.11.2013, 04:22     "Неопределенное поведение" при выходе вводимых данных за пределы массива #1
В условии задачи написано, что функция не проверяет индексы. И если введенные пользователем входные данные будут выходить за пределы массива, то поведение не определено.

Это означает, что я не должен проверять на корректность введенных пользователем данных? А там компилятор, что выдаст, то и выдаст?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2013, 04:22     "Неопределенное поведение" при выходе вводимых данных за пределы массива
Посмотрите здесь:

warning C4244: =: преобразование "double" в "float", возможна потеря данных C++
Warning C4244: =: преобразование "double" в "float", возможна потеря данных C++
Warning C4244: инициализация: преобразование "__int64" в "int", возможна потеря данных C++
C++ Неопределенное поведение пользовательской функции
Упорядочивание "пузырьком" массивов, вводимых пользователем C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
katsidelin
 Аватар для katsidelin
60 / 21 / 2
Регистрация: 15.11.2013
Сообщений: 112
Записей в блоге: 3
20.11.2013, 05:44     "Неопределенное поведение" при выходе вводимых данных за пределы массива #2
Компилятор тут не при чём.
Выдаст программа или оболочка (командный интерпертатор) сообщение об ошибке (в лучшем случае) или программа (а может быть и ОС) зависнет. А что именно из сего произойдёт "не предопределено".
takeneo
3 / 3 / 3
Регистрация: 16.08.2013
Сообщений: 22
20.11.2013, 05:48     "Неопределенное поведение" при выходе вводимых данных за пределы массива #3
Не знаю кто конкретно это делает компилятор или ос, но когда много ошибок вылезает segmentation error.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
20.11.2013, 11:26     "Неопределенное поведение" при выходе вводимых данных за пределы массива #4
Nikcharn, Именно так.
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
20.11.2013, 11:43     "Неопределенное поведение" при выходе вводимых данных за пределы массива #5
Цитата Сообщение от Nikcharn Посмотреть сообщение
Это означает, что я не должен проверять на корректность введенных пользователем данных? А там компилятор, что выдаст, то и выдаст?
Да не нада проверять просто исключение вылови, если вылетит за пределы и обработай try{}catch(...){} .
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
20.11.2013, 11:51     "Неопределенное поведение" при выходе вводимых данных за пределы массива #6
Цитата Сообщение от ninja2 Посмотреть сообщение
просто исключение вылови
Исключение можно поймать, если оно вообще было. Для обычного массива никаких исключений не генерируется при выходе за пределы. Да и для контейнерных классов только в вариантах с at().
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2013, 11:51     "Неопределенное поведение" при выходе вводимых данных за пределы массива
Еще ссылки по теме:

C++ Неопределенное поведение в Debug и Release
C++ Неопределенное поведение при приведении типа
C++ Создание массива, неопределенное поведение

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
20.11.2013, 11:51     "Неопределенное поведение" при выходе вводимых данных за пределы массива #7
Цитата Сообщение от ninja2 Посмотреть сообщение
Да не нада проверять просто исключение вылови
Выход за пределы вызовет падение программы или порчу данных, либо еще что-то, а не исключение!
Yandex
Объявления
20.11.2013, 11:51     "Неопределенное поведение" при выходе вводимых данных за пределы массива
Ответ Создать тему
Опции темы

Текущее время: 04:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru