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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Нужна подмога в C++, необходимо реализовать несложную игру http://www.cyberforum.ru/cpp-beginners/thread810756.html
Вот, собственно, задание: Написать программу, реализующую игру "Кто первый скажет сто". Играют двое. Игроки по очереди вводят числа из интервала .Вводимые числа складываются. Игра продолжается до тех пор, пока окончательная сумма не станет равна 100. Выигрывает тот, после хода которого получается эта сумма. P.S. Очень нужна помощь, брату необходимо сдать в универ, но он перенес операцию на...
C++ Удалить со строки слова Всем доброго времени суток. Мне нужно удалить со строки все слова которые начинаются на гласную с помощью: 1) Строки как массива символов. 2) Строки как класса string. Помогите пожалуйста. Заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread810752.html
Массив, объявленный как двумерный, является одномерным C++
Сабж в теме. Объявляю двумерный массив 5х5 строкой float mas; Затем заполняю его данными с клавиатуры. При компиляции ошибок никаких, но во время дебага тип массива определяется как float*. Притом, с массивом curM, объявленным аналогично в функции det все нормально - двумерный, как и положено. #include "stdafx.h" using namespace std; float det(float mas, int n, int m, int x, int y);
Битовые поля структур: что такое и зачем они нужны? C++
Собственно, вопрос в заголовке. Читал Шилдта, но там эта тема довольно расплывчата. Надеюсь, кто-нибудь сможет доходчиво объяснить.
C++ постфиксная перегрузка поная запись http://www.cyberforum.ru/cpp-beginners/thread810715.html
Здарова! создал класс Int2 как бы моделирующий int в нем решил перегрузить все операторы которые токо есть с вызовом в короткой форме и в полной. оператор постфиксный ++ перегрузил так Int2 operator++(int) { return val++; //это открытый член-значение класса. }
C++ функции и матрицы всем привет! задание следующее: Написать функции: 1. создания матрицы размерности , элементы матрицы А – вещественные числа. Параметры функции – сама матрица, ее размерность. 2. печати матрицы. Параметры функции – сама матрица, ее размерность. 3. поиска суммы положительных элементов матрицы. для начала написал без функций, создает и печатает без проблем. Написал с функцией и крах...... подробнее

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