186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139

Как это работает?

28.09.2011, 17:57. Показов 4447. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
int *fun()
{
    int a = 5;
    return &a;
}
int main()
{
        int *ptr = fun();
        std::cout << *ptr;
        system( "pause" );
        return 0;
}
Как я это себе представляю: функция fun возвращает адрес автоматической переменной. Но эта переменная при завершении работы функции fun уничтожается, поэтому указатель ptr указывает на недействительную память.
Даже компилятор выдает это :warning C4172: возвращение адреса локальной или временной переменной

Так почему это работает?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.09.2011, 17:57
Ответы с готовыми решениями:

Как это работает? Я хочу спросить как работает C++ и где можно про него почитать
Привет, котоны. Заранее благодарю. Это будет моих общих вопросов нить, т.к. создавать целую ветку для каждого нецелесообразно. Я хочу...

Русификация.Работает-супер! Обьяснитте, как это работает?
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; using namespace std; char* Rus(const char* text); int main () ...

Как это работает?
Доброго времени суток. Граждане программисты, подскажите пожалуйста как работает данный кусок кода??? А точнее дружественные функции...

24
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
28.09.2011, 18:49  [ТС]
Студворк — интернет-сервис помощи студентам
Я думаю, что все сказанное про стэк - это лишнее, ибо только запутываете. В ответе на мой вопрос, который в итоге получился, никакого стэка не присутствует.
0
 Аватар для DKOI
24 / 24 / 0
Регистрация: 08.09.2010
Сообщений: 136
28.09.2011, 18:51
Цитата Сообщение от Chelioss Посмотреть сообщение
Я думаю, что все сказанное про стэк - это лишнее, ибо только запутываете. В ответе на мой вопрос, который в итоге получился, никакого стэка не присутствует.
Действительно, это может путать. Но суть вы поняли верно. Память уже "освобождена", но ещё не задействована снова. А где и как она хранится, не особо в данном случае важно.
1
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
28.09.2011, 19:47
Цитата Сообщение от DKOI Посмотреть сообщение
Недокументированная особенность.
Неопределённое поведение, вообще-то.
1
 Аватар для DKOI
24 / 24 / 0
Регистрация: 08.09.2010
Сообщений: 136
28.09.2011, 20:59
Цитата Сообщение от silent_1991 Посмотреть сообщение
Неопределённое поведение, вообще-то.
Дословный перевод и вольный смысловой перевод. Сути дела не меняет. ИМХО. Если же тут есть какие-то смысловые отличия, то прошу разъяснить.

Добавлено через 6 минут
Хотя, наверное все таки есть... Ну да ладно.
1
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
28.09.2011, 22:14
DKOI, разумеется, отличия есть. Неопределённое поведение предполагает, что поведение может меняться от запуска к запуску даже на одном компиляторе, в отличие от недокументированной возможности, которая либо может быть воспроизведена по желанию пользователя, либо будет гарантированно проявляться всегда и с одним и тем же эффектом при равных условиях.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.09.2011, 22:14

Как это работает?
Здравствуйте, можете, пожалуйста, поэтапно объяснить как работает приведенный ниже фрагмент кода? Что такое floor, return, ceil? double...

Как это работает?
Не могу понять, как это работает: #include &lt;iostream&gt; using namespace std; int main() { int ar = {1, 2, 3, 4}; ...

Как это работает?
#include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; int main() { char* s=new char; ...

Как это работает
Здравствуйте уважаемые форумчане!Как это работает? Как например предотвратить выход за приделы допустимых значений переменных!? ...

Как это работает?
Читаю я кое какой &quot;учебник&quot;, и в нём появился такой вот кусок кода int input (tank&amp; t, char map) { char act; int ch; int e =...


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Опции темы

Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru