Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.08.2014, 13:56   #1
DakotaZ
Пользователь
 
Регистрация: 31.07.2014
Сообщений: 48
По умолчанию Выход за границы массива, имеет-ли смысл в виртуальных адресах?

Здравствуйте.

В своей книге, Герберт Шилдт утверждает, что ввод данных за границу массива может привести к плачевным результатам не только для программы, но и для всей ОС.

Но, учитывая тот факт, что адресация была свободной только до Windows 2000, я делаю предположение, что разграничение массива может привести к плохому результату только в виртуальном пространстве адресов, то есть только внутри программы, т.к. адресация идет именно внутри программы.

Я понимаю это так : Если я выйду за границу массива, то есть шанс того, что я невольно разрушу/изменю значения своих других переменных в своей программе.

Отсюда у меня возникает три вопроса.
1) Правильно-ли я все понял?

2) А что будет, если я выйду за границу массива, но его граница будет являться последним зарезервированным адресом в памяти для моей программы, что произойдет в таком случае?
Пример:
Код:
int i[2] = {1,2};
int *k = i;
k++;
k++;
*k = 100500;
3) Если в Windows адресация стала виртуальной только с Windows 2000(включительно), то как дело обстоит в UNIX системах?
К примеру, в Linux или BSD?
Там с любых версий адресация была виртуальной или как?

Заранее спасибо за ответы.
DakotaZ вне форума Ответить с цитированием
Старый 27.08.2014, 14:07   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в общем-то только внутри, за исключением нескольких случаев прога убьет сама себя.
но выход за границы массивов может привести к уязвимостям что может привести уже к вреду за пределами проги.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.08.2014, 14:30   #3
DakotaZ
Пользователь
 
Регистрация: 31.07.2014
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
но выход за границы массивов может привести к уязвимостям что может привести уже к вреду за пределами проги.
каким образом?
Если все делается только внутри программы.
DakotaZ вне форума Ответить с цитированием
Старый 27.08.2014, 15:51   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

самоудалено
waleri вне форума Ответить с цитированием
Старый 27.08.2014, 16:46   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от DakotaZ Посмотреть сообщение
каким образом?
Если все делается только внутри программы.
скажем если ваша программа сервер.
и определенные данные могут перехватить управление в вашем ПО, и далее чужой код выполнится от имени вашего приложения.
(причем код может быть абсолютно внешний)
или скажем прога откроет неверный файл изза этого.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выход за границы массива 220Volt Общие вопросы C/C++ 7 01.07.2013 07:55
Выход за границы диапазона типа byte в Pascal Dianasobaka Помощь студентам 5 30.11.2012 14:06
Выход за границы массива weech Помощь студентам 8 30.04.2012 23:52
Паскаль. Выдёт ошибку "выход за границы диапазона" Winterfox Помощь студентам 1 04.12.2011 14:13
Ошибка "выход за границы диапазона" Luuun Помощь студентам 6 28.01.2010 22:39