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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
[progeR]
30 / 8 / 0
Регистрация: 20.08.2011
Сообщений: 605
#1

Неиспользуемые локальные переменные - C++

10.01.2013, 16:47. Просмотров 1042. Ответов 5
Метки нет (Все метки)

Добрый день.
Напомните, пожалуйста, вот что. Имеем, например:
C++
1
2
3
4
5
6
7
8
void MyClass::myFunc()
{
      SomeClass *cls = new SomeClass();
      int i = cls->someFunc();
      QVector<int> myVector;
      myVector.append(i);
      this->getVector(myVector);
}
Что станется с локальными переменными cls, i, myVector после выполнения этого метода? Память освободится или нужно самостоятельно их удалять?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2013, 16:47     Неиспользуемые локальные переменные
Посмотрите здесь:

Локальные переменные - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; // по объявлению библиотек сразу видно компилятор старый такчто ветераны с++ помогите ...

С++ ООП локальные переменные - C++
Есть розмерность для матрицы n i m, если я ввожу их в функции create, то уже функция print их не видит.я понимаю что они локальные, как же...

Локальные переменные-классы - C++
есть такой код #include &lt;iostream&gt; using namespace std; class My_vector{ friend ostream &amp;operator&lt;&lt;(ostream &amp;,const My_vector...

Неинициализированные локальные переменные - C++
Меня интересует как обходить данные ошибки. В чем соль ошибок? Проблема даже не в том что они есть, а то что компилятор останавливается и...

Variadic templates локальные переменные - C++
Еще один вопрос по Variadic templates. Решаю следующую задачу: Необходимо сохранить в памяти функцию с набором параметров для...

Asm локальные переменные, объявленные в c++ - C++
//------------------------------------------------------------------------------------------------- TLongInteger TLongInteger:: ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
10.01.2013, 18:30     Неиспользуемые локальные переменные #2
Память выделена динамически и не освобождена - утечка памяти. В конце функции нужно освободить память с помощью delete.
В С++ нет GC
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
10.01.2013, 19:05     Неиспользуемые локальные переменные #3
[progeR], cls это указатель, память, выделенная под него, освободится автоматически. А вот память под тот объект, на который он указывает, нужно освобождать самому. В конце просто допишите:
C++
1
delete cls;
[progeR]
30 / 8 / 0
Регистрация: 20.08.2011
Сообщений: 605
10.01.2013, 20:31  [ТС]     Неиспользуемые локальные переменные #4
По поводу класса ясно, а что станется с вектором и целым числом?
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
10.01.2013, 20:34     Неиспользуемые локальные переменные #5
целым числом?
Умрет вместе со стековым фреймом.

вектором
В конце функции вызовется деструктор вектора, который освободит всю память за собой.

Если использовать умный указатель, то память освобождать не придется.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2013, 20:35     Неиспользуемые локальные переменные
Еще ссылки по теме:

Локальные, глобальные переменные и функции - C++
Есть массив типа char. char b; Он заполнен нулями и единицами. b находится в main. Нужно вывести на консоль b в ф-ции main, но уже в...

Локальные переменные в функции и её аргумент - C++
Привет! Пишу функцию перевода десятичного числа в текст (не обсуждайте зачем и правильно ли я делаю) Суть такова, начало функции: ...

Неинициализированные локальные переменные warning C4700 - C++
// Laboratornaa.cpp: определяет точку входа для консольного приложения. // #include&quot;stdafx.h&quot; #include&lt;iostream&gt; ...

как в Code::Blocks просмотреть локальные переменные? - C++
знаю, что можно, а как - не знаю :( Добавлено через 15 часов 11 минут up...

Локальные переменные или прямое обращение к get-объекта класса? - C++
Собственно, что лучше? Создавать локальные переменные и хранить там значения, полученные из экземпляра или напрямую обращаться к полям...

Как сделать так, чтобы локальные переменные не обнулялись автоматически? - C++
Сижу под Linux, использую Code::Blocks, компилятор gcc. Я заметил одну неприятную вещь: когда я где-то забываю что-то обнулить,...


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

Или воспользуйтесь поиском по форуму:
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
10.01.2013, 20:35     Неиспользуемые локальные переменные #6
А что может с ними стать? Это локальные объекты, такие же как и указатель, память освободится после выхода из функции.
Yandex
Объявления
10.01.2013, 20:35     Неиспользуемые локальные переменные
Ответ Создать тему
Опции темы

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