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

Оператор new внутри функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужна подмога в C++, необходимо реализовать несложную игру http://www.cyberforum.ru/cpp-beginners/thread810756.html
Вот, собственно, задание: Написать программу, реализующую игру "Кто первый скажет сто". Играют двое. Игроки по очереди вводят числа из интервала .Вводимые числа складываются. Игра продолжается до...
C++ Удалить со строки слова Всем доброго времени суток. Мне нужно удалить со строки все слова которые начинаются на гласную с помощью: 1) Строки как массива символов. 2) Строки как класса string. Помогите пожалуйста.... http://www.cyberforum.ru/cpp-beginners/thread810752.html
Массив, объявленный как двумерный, является одномерным C++
Сабж в теме. Объявляю двумерный массив 5х5 строкой float mas; Затем заполняю его данными с клавиатуры. При компиляции ошибок никаких, но во время дебага тип массива определяется как float*. Притом,...
Битовые поля структур: что такое и зачем они нужны? C++
Собственно, вопрос в заголовке. Читал Шилдта, но там эта тема довольно расплывчата. Надеюсь, кто-нибудь сможет доходчиво объяснить.
C++ постфиксная перегрузка поная запись http://www.cyberforum.ru/cpp-beginners/thread810715.html
Здарова! создал класс Int2 как бы моделирующий int в нем решил перегрузить все операторы которые токо есть с вызовом в короткой форме и в полной. оператор постфиксный ++ перегрузил так Int2...
C++ функции и матрицы всем привет! задание следующее: Написать функции: 1. создания матрицы размерности , элементы матрицы А – вещественные числа. Параметры функции – сама матрица, ее размерность. 2. печати матрицы.... подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
21.03.2013, 08:28
Цитата Сообщение от hotpil Посмотреть сообщение
Но вот такой код выводит же правильный ответ
С точки зрения языка и компилятора на момент выхода из функции все её локальные переменные уничтожаются, перестают существовать. С точки зрения выполнения программы стек после возврата из функции никто не чистит, потому там вполне может остаться присвоенное значение, и код будет работать, как ожидалось. Но штука в том, что стек может и перезаписаться, и возвращено будет совсем другое значение. Код же, работающий по разному в зависимости от фазы луны, правильным назвать нельзя. Поэтому пишут совершенно правильно - по адресу, возвращённому из функции, в общем случае лежит неопределённое значение (мусор).
Цитата Сообщение от hotpil Посмотреть сообщение
Почему? Ведь "а" же локальная переменная и после выхода из функции должна бы уничтожиться ...
a - всего лишь указатель. Мы ведь не саму a возвращаем, а значение, которое в неё записано. А вот оно-то никуда не пропадёт, ведь память выделена динамически. Другой вопрос - память эту программист обязан собственноручно вернуть системе с помощью вызова free.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru