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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2011, 15:17   #11
mojohead
Пользователь
 
Регистрация: 10.01.2011
Сообщений: 79
По умолчанию

Цитата:
Сообщение от Косюра Посмотреть сообщение
А это прости, язык какой? Не бейсик ли часом?
ничто иное как С++
mojohead вне форума Ответить с цитированием
Старый 14.01.2011, 15:31   #12
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Цитата:
Сообщение от mojohead Посмотреть сообщение
можете подсказать где ошибка в этом коде. и обяснить почему..пожалуйста.

int foobar(int *pi) {
*pi = 1024;
return *pi;
}
int main() {
int *pi2 = 0;
int ival = foobar(pi2);
return 0;
pi2 - указатель на int, которому присваевается 0, т.е. ты говоришь, что по адресу 0х00000000 будет некий int. Это не так. Нужно, например:

Код:
int a = 0;
int *pi2 = &a;
или, как вариант:

Код:
int a = 0;
int ival = foobar(&a);
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 14.01.2011, 15:39   #13
mojohead
Пользователь
 
Регистрация: 10.01.2011
Сообщений: 79
По умолчанию

int a = 0;
int *pi2 = &a;

как тогда обяснить эту запись
mojohead вне форума Ответить с цитированием
Старый 14.01.2011, 16:00   #14
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Код:
int a = 0;
Мы просим компилятор выделить память под int. Т.к. это локальная переменная, память выделяется в стеке, что в общем не так важно. Важно то, что память гарантированно выделится (если стек не переполнится, ггг). После этого мы инициализируем эту память значением 0.

Код:
int *pi2 = &a;
Мы просим компилятор выделить память под указатель (в данном случае, на int). Опять же, сам указатель будет храниться в стеке. После этого, мы инициализируем указатель ссылкой на а, т.е. ссылкой на некую область в стеке, где хранится int.

Вот, кстати, и отличие ссылки от указателя )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти и исправить ошибку. (Ссылки, указатели, утечка памяти) С,С++ ZanLeO Общие вопросы C/C++ 8 09.08.2010 13:00
C++ Указатели и ссылки - Вычислить площадь квадрата. Scarletred Помощь студентам 2 24.05.2010 03:49
Указатели IceBreaker Общие вопросы C/C++ 9 05.02.2010 09:11
[C] массивы, указатели, двойные указатели. Iggel Общие вопросы C/C++ 5 05.05.2009 12:39
Указатели Принц Общие вопросы C/C++ 2 08.06.2008 16:15