|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.09.2012, 20:42 | #1 |
Пользователь
Регистрация: 28.01.2009
Сообщений: 75
|
Глупый затык с указателем
Всем привет!
Есть простецкий кусок кода: Код HTML:
void f(int *a) { a = new int; *a = 5; } int main() { int *x; f(x); cout << *x; delete x; cin.get(); return 0; } Форумчане, очень надеюсь на вашу помощь) Последний раз редактировалось theYozh; 04.09.2012 в 20:49. |
04.09.2012, 20:50 | #2 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
найди отличие:
Код:
Другими словами, внутри функции участвуют копии входных аргументов, а вовсе не оригиналы |
04.09.2012, 20:55 | #3 |
Пользователь
Регистрация: 28.01.2009
Сообщений: 75
|
_Bers, спасибо! Понял, разобрался. На весы нажал
|
04.09.2012, 20:58 | #4 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
theYozh
Всю голову сломал, но так и не понял, почему в консоли не выводтся "5" ? Очень просто. Функция принимает указатель на целое и внутри неё 'а' - это копия адреса x когда ты выделяешь память, то 'а' присваивается некоторое значение адреса памяти, уже не имеющего ничего общего с 'x' В это память даже чего-то пишется, разумеется на 'x' это никак не влияет. Ну а утечка памяти и крэш программы в конце - это уже классика((((Ж
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа с указателями | compiler90 | Visual C++ | 1 | 04.06.2012 18:52 |
Работа с указателями | yaapelsinko | Общие вопросы Delphi | 3 | 15.02.2012 01:13 |
Работа с указателями | Byurrer | Общие вопросы C/C++ | 8 | 02.04.2011 21:09 |
Работа с указателями | stas135642 | Общие вопросы C/C++ | 2 | 21.11.2010 15:05 |
Работа с указателями (C) | pixel_ | Помощь студентам | 1 | 28.08.2009 14:07 |