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

что будет? - C++

Восстановить пароль Регистрация
 
лендер
46 / 46 / 2
Регистрация: 12.01.2010
Сообщений: 183
14.05.2010, 23:16     что будет? #1
что случится если запустить такой код

C++
1
2
3
4
5
6
7
8
 
 long int *p, i = 0;
 
     while(1)
     {
       i++;
       p[i] ;
     }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2010, 23:16     что будет?
Посмотрите здесь:

Что будет выведено на экран? C++
C++ что будет выведено на экран
Что будет? C++
что быстрее работать будет?? C++
Что будет если так сделать? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
oxotnik
 Аватар для oxotnik
1584 / 1061 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
14.05.2010, 23:22     что будет? #2
ниче страшного не будет
Psixodelik
 Аватар для Psixodelik
39 / 38 / 2
Регистрация: 27.11.2009
Сообщений: 93
14.05.2010, 23:25     что будет? #3
Комп задумается? xD xD
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.05.2010, 23:28     что будет? #4
лендер, вечный цикл.
лендер
46 / 46 / 2
Регистрация: 12.01.2010
Сообщений: 183
14.05.2010, 23:29  [ТС]     что будет? #5
ОЙ нетак написал, извиняюсь
C++
1
2
3
4
5
6
7
 long int *p, i = 0;
 
     while(1)
     {
       i++;
       p[i] = 0 ;
     }
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
14.05.2010, 23:30     что будет? #6
лендер, ваша программа со временем выйдет за пределы своего адресного пространства и программа аварийно завершится
лендер
46 / 46 / 2
Регистрация: 12.01.2010
Сообщений: 183
14.05.2010, 23:33  [ТС]     что будет? #7
тоисть в памяти я нигде не нагажу?
Psixodelik
 Аватар для Psixodelik
39 / 38 / 2
Регистрация: 27.11.2009
Сообщений: 93
14.05.2010, 23:35     что будет? #8
А можно вопрос? Наверно я туплю или проспал лекции по указателям....но почему переменная объявлена как *p, а в цикле она уже используется как массив? И кстати M128K145, посмотрел в дебаге, аварийное завершение будет сразу, как только дойдёт до p[i] = 0 ;
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.05.2010, 23:37     что будет? #9
Цитата Сообщение от лендер Посмотреть сообщение
тоисть в памяти я нигде не нагажу?
Нет. Во-первых каждый процесс исполняется в своем адресном пространстве, а во-вторых ОС не даст тебе этого сделать и при попытке доступа с не зарезервированной области памяти выдаст исключение.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2010, 01:51     что будет?
Еще ссылки по теме:

C++ Что будет результатом выполнения строки кода?
C++ Что будет выведено на экран?
0 умножить на что-угодно не всегда будет 0? C++

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
15.05.2010, 01:51     что будет? #10
Цитата Сообщение от Psixodelik Посмотреть сообщение
посмотрел в дебаге, аварийное завершение будет сразу, как только дойдёт до p[i] = 0 ;
видимо, по тому, что изначально p ничем не инициализирован...
C
1
2
3
4
5
6
7
8
long int *p, i = 0;
 
     p = &i; 
     while(1)
     {
       i++;
       p[i] = 0 ;
     }
вот так должно веселее быть...
Yandex
Объявления
15.05.2010, 01:51     что будет?
Ответ Создать тему
Опции темы

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