![]() |
|
Модераторы: bsa |
![]()
|
|
| ShadowC |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 23.6.2011 Репутация: нет Всего: нет |
вообщем суть вопроса вот в чем,число в квадратных скобках это колличество элементов массивов,тоесть обьявление int x[6]; означает что в массиве 6 ячеек под 6 целых чисел,но как бы не так. если инициализировать все элементы массива в объявление,тоесть
то попытка вставить туда 7 элемент массива приводит к ошибке компиляции,но если поступить так
тоесть явно инициализировать уже 7-ой элемент массива,то компилятор не выдает ошибку,ну покрайнемере Dev-C++. и код
выведет все 7 элементов массивов тоесть x[0]-x[6] в следствие чего у меня вопрос,это нормально или это баг компилятора. |
||||||
|
|||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
это баг программиста.. т.е. Ваш..
|
|||
|
||||
| newbee |
|
||||||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 3 Всего: 19 |
-------------------- You're face to face With man who sold the world |
||||||
|
|||||||
| Mikron |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 2.5.2007 Репутация: нет Всего: нет |
это *(x+6)=75 записать в такую-то ячейку памяти 75, обычная операция, здесь нет ошибки но по этому адресу может быть расположено что-то нужное, и так делать нельзя |
|||
|
||||
| ShadowC |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 23.6.2011 Репутация: нет Всего: нет |
в том-то и дело что по этому адресу не может находится ничего нужного,т.к 6 элементов в массиве x[6] это элементы от 0 до 5 и если не инициализировать x[6] явным образом,то его как бы и не существует |
||||
|
|||||
| Mikron |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 2.5.2007 Репутация: нет Всего: нет |
не понял чего не существует( по адресу *(x+6) что-то уже записано, или может быть записано, и вы не можете с этой памятью работать, она не ваша Это сообщение отредактировал(а) Mikron - 16.9.2011, 14:46 |
|||
|
||||
| BrAgOl |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 6.3.2005 Где: М.О. Репутация: нет Всего: нет |
А зачем вам это делать??? int x[6] это массив состоящий из элементов x[0] x[1] x[2] x[3] x[4] x[5]
х[6] это за пределами объявленного вами массива, там может храниться что угодно, а может и не храниться ЗЫ если не прав, поправьте |
|||
|
||||
| ShadowC |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 23.6.2011 Репутация: нет Всего: нет |
да блин,в массиве x[6] есть 6 ячеек памяти в которые можно записать информацию это x[0],x[1],x[2],x[3],x[4],x[5] ,а x[6] это уже 7-ой элемент массива тоесть это как бы и нет... |
|||
|
||||
| Mikron |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 2.5.2007 Репутация: нет Всего: нет |
x[6] - это не элемент массива, это адрес, по которому вы пишите что-то, но по этому адресу уже может быть что-то записано |
|||
|
||||
| newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 3 Всего: 19 |
ShadowC, пока просто возьми за правило не лезть за границы массива. Потом поймешь. -------------------- You're face to face With man who sold the world |
|||
|
||||
| Mikron |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 2.5.2007 Репутация: нет Всего: нет |
||||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
а включить проверку на выход за границы разве нельзя?
-------------------- Обижено школьников: 8 |
|||
|
||||
| newbee |
|
||||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 3 Всего: 19 |
x+6 - так адрес! А x[6] или *(x+6) - значение! Тоже мне, советчик. -------------------- You're face to face With man who sold the world |
||||
|
|||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |