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

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

Войти
Регистрация
Восстановить пароль
 
Гурген
13 / 0 / 0
Регистрация: 16.11.2014
Сообщений: 42
#1

Есть ли утечка памяти в list - C++

20.11.2014, 12:33. Просмотров 222. Ответов 5
Метки нет (Все метки)

Здравствуйте, форумчане, есть вопрос насчет освобождения памяти в list, каждый элемент которого представлен структурой.Хотел узнать правильно ли освобождаю память и нет ли утечки?
Вот часть кода:
C++
1
2
3
4
5
6
7
extern struct List
{
    string mgramma; // m-грамма
    int count;          // количество повторений m-граммы
};
extern list<List> *List1;   // Указатель на список, каждый элемент которого представлен структурой List
extern int m;               // количество букв в m-грамме
А вот сам мэин(представлю только часть кода, так как интересует только освобождение памяти):
C++
1
2
3
4
5
6
7
case 1: //Загрузка файла
            delete List1;
            List1 = new list<List>;
            cout << "Введите количество букв в m-грамме - ";
            cin >> point_1;
            cin.clear();
            cin.ignore(cin.rdbuf()->in_avail());
Правильно ли в данном случае освобождаю память, или же нужно использовать clear, не могу разобраться, помогите.Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2014, 12:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Есть ли утечка памяти в list (C++):

Есть ли утечка памяти? - C++
Пример добавления элемента в список. // Включение в список нового компонента void comp_in(dyn_list &amp;l, char* n, char* v) { comp*...

Есть ли утечка памяти в этом случае? - C++
_Доброго денёчка всем. Прохожу тему на указатели и ссылки. Делаю упражнение на тему &quot;написать программу, вызывающую утечку памяти&quot;. Смысл...

Есть ли утечка памяти в проекте? И как можно это перепроверять? - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; class MyArray { int *ptrarray; //массив ...

утечка памяти - C++
если запустить код char *pointer = NULL; for( int i = 0; i &lt; 10; i++ ) { pointer = new char; } delete pointer; , то есть...

Утечка памяти - C++
Доброго времени суток! Столкнулся с проблемой утечки памяти! Будь у меня маленькая программка, выловил бы легко, но в 2000 строк кода все...

Утечка памяти - C++
Здравствуйте! Я пишу длинную арифметику для целых чисел. Ниже - функция произведения чисел X и Y. Вопрос: произойдет ли утечка памяти, и...

5
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
20.11.2014, 12:35 #2
Гурген, Правильно. delete List1 вызовет деструктор std::list, который очистит свою память, после чего будет освобождена память, которую занимает List1.
0
Гурген
13 / 0 / 0
Регистрация: 16.11.2014
Сообщений: 42
20.11.2014, 12:39  [ТС] #3
ForEveR, а альтернативным вариантом можно использовать clear?
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
20.11.2014, 12:44 #4
Гурген, А смысл? Можно вызвать
C++
1
2
List1->clear();
delete List1;
Но это предельно бессмысленно, delete звать придется в любом случае, т.к. List1 указатель и память под него выделена динамически. Кстати, зачем вообще использовать указатель на список?
0
Гурген
13 / 0 / 0
Регистрация: 16.11.2014
Сообщений: 42
20.11.2014, 12:50  [ТС] #5
ForEveR, это задание такое, надо было именно так реализовать, просто с освобождением проблемы: именно в том, что не знаю как проверить, есть ли утечка, в гугле много всего понаписано, а конкретики нет.
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
20.11.2014, 13:05 #6
Гурген, Если на каждый new использованный в программе вызван корректный delete - утечки быть не может. Искать утечку в стандартной библиотеке глупая идея, ее там не может быть.
0
20.11.2014, 13:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2014, 13:05
Привет! Вот еще темы с ответами:

Утечка памяти в - C++
Кто подскажет плиз. Тут у меня утечка памяти foreach (var file in xpsFiles) { ...

Утечка памяти - C++
Доброго времени суток. Написал оконное приложение. Столкнулся с проблемой - утекает память. Какие есть средства, чтобы определить,...

Утечка памяти? - C++
В Лафоре такой код: #include &lt;iostream&gt; using namespace std; /////////////////////////////////////////////////////////// class...

утечка памяти - C++
Может кто-то проверить есть ли здесь утечка памяти? Мне почему-то кажется что есть. В задачи нужно когда пользователь сделал операции...


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

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

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