Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.68/22: Рейтинг темы: голосов - 22, средняя оценка - 4.68
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
1

Почему локальная переменная не уничтожается после выхода из функции

13.07.2012, 15:26. Просмотров 4173. Ответов 21
Метки нет (Все метки)

В функции создается строка char *pn = new char[ strlen(temp) + 1 ];. Мне непонятно почему при выходе из функции эта строка доступна в main()? Почему эта строка не удаляется после выхода из функции?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
char *getName(void)
{
    char temp[80];
    
    cout << "Enter last name: ";
    cin >> temp;
 
    char *pn = new char[ strlen(temp) + 1 ];
    strcpy(pn, temp);
 
    return pn;
}
 
int main()
{
   char *name;
 
   name = getName();
}
Объясните, пожалуйста, что вообще там происходит.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.07.2012, 15:26
Ответы с готовыми решениями:

Почему переменная "d" не была удалена из стека после выхода из функции?
Почему переменная &quot;d&quot; не была удалена из стека после выхода из функции? #include&quot;stdafx.h&quot;...

Уничтожается переменная по выходу из функции. так не должно быть
Все доброго времени суток! В процессе отладки программки возник один вопрос... Есть функция:...

Локальная переменная внутри статической функции
Всем доброго дня! Из данного примера выяснилось, что при обьявлении функции func_1()...

Почему выводит ошибку C4700, что локальная переменная неинициализированна, если она инициализированна
Все это более чем странно. #include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;time.h&gt; #include...

21
Нуб со стажем
36 / 34 / 10
Регистрация: 19.02.2012
Сообщений: 118
13.07.2012, 19:18 21
Цитата Сообщение от alsav22 Посмотреть сообщение
или использовать классы с автоматическим управлением памятью, которые сами за этим следят
например "Умный указатель" auto_ptr
0
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
13.07.2012, 19:25 22
kent, стринг лучше
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.07.2012, 19:25

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Локальная переменная масив не создаеться в вызваной функции
Здравствуйте, Не укладывется в голове, после завершения рекурсий (т.е.контроль передаеться на...

Почему не запоминается переменная после первого вызова функции ?
В общем есть кнопки и одна последняя кнопка . На них поставил функции по клику менять значение...

Переменная запоминающаяся после выхода из программы
Подскажите можно ли задать какую то переменную в java чтобы она сохранилась и после перезапуска...

Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная"
// gd.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.