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

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

Войти
Регистрация
Восстановить пароль
 
srin
25 / 25 / 11
Регистрация: 05.05.2014
Сообщений: 115
#1

Утечка памяти - C++

28.06.2014, 16:03. Просмотров 549. Ответов 8
Метки нет (Все метки)

Здравствуйте. Есть программа (разбитая на функции) постоянно работающая в цикле и выводящая информацию на консоль. И получается что она жрёт память. за сутки в диспетчере занимаемый объём памяти становится около 30MB.
есть 3 варианта утечки:
- Не очищаю консоль/буфер консоли.
- Динамическая память. Но вроде освобождаю правильно.
- streambuf/stringstream в подпрограммах. Стараюсь использовать .flush(), но ничего не даёт.

Может кто что подскажет?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2014, 16:03     Утечка памяти
Посмотрите здесь:

Утечка памяти - C++
Либо я себе мозг запудрила, либо помогите мне :) есть у меня вектор vector<char*> names_variable; дополняю его таким образом ...

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

Утечка памяти - C++
Где я допустил ее(утечку)? #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstring> #include <string> class...

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

Утечка памяти?! - C++
Джесс Либерти и Дэвид Хорват "Освой самостоятельно С++ за 24 часа", вырезка из листинга 15.4 (стр 233): Строка 26 - Утечка памяти?...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
28.06.2014, 16:19     Утечка памяти #2
Цитата Сообщение от srin Посмотреть сообщение
- Динамическая память. Но вроде освобождаю правильно.
Ну тогда и утечек нет.

Цитата Сообщение от srin Посмотреть сообщение
Может кто что подскажет?
вот у меня в программе где-то исключение вылетает. Может подскажете?

На основании чего Вам подскажут? Даже телепаты помрут от перенапряжения. Ищите где утекает.
srin
25 / 25 / 11
Регистрация: 05.05.2014
Сообщений: 115
28.06.2014, 16:25  [ТС]     Утечка памяти #3
хорошо, streambuf/stringstream не может жрать память?
BatonPro
30 / 30 / 24
Регистрация: 21.06.2014
Сообщений: 81
28.06.2014, 16:38     Утечка памяти #4
Не видя кода, тяжело что-то вам порекомендовать. Скорее всего вы где-то не освобождаете выделенную память.
EVP
321 / 243 / 43
Регистрация: 14.12.2010
Сообщений: 462
28.06.2014, 22:17     Утечка памяти #5
Цитата Сообщение от srin Посмотреть сообщение
- Динамическая память. Но вроде освобождаю правильно.
В Visual Stuidio можно проверить под отладчиком.
Renji
1823 / 1241 / 288
Регистрация: 05.06.2014
Сообщений: 3,551
28.06.2014, 23:29     Утечка памяти #6
- Динамическая память. Но вроде освобождаю правильно.
Не освобождать, вместо этого использовать std::map, std::vector, std::list, std::unique_ptr(его и в вектор пихать можно)/std::auto_ptr везде, где только можно. Где нельзя - поправить чтоб было можно и все равно использовать. Если не поможет - обвешиваться проверками на тему "вектор случайно разросся на миллион элементов".
Vourhey
Почетный модератор
6474 / 2249 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
28.06.2014, 23:51     Утечка памяти #7
Valgrind
srin
25 / 25 / 11
Регистрация: 05.05.2014
Сообщений: 115
30.06.2014, 14:20  [ТС]     Утечка памяти #8
Всем спасибо за ответы. Правда ничем не пользовался. Переписывал немного код и нашёл, что в одном месте забыл вставить mysql_free_result. Скорее всего из-за этого и была утечка памяти. По крайней мере программа теперь так сильно не пухнет.

Цитата Сообщение от Renji Посмотреть сообщение
Не освобождать, вместо этого использовать std::map, std::vector, std::list, std::unique_ptr(его и в вектор пихать можно)/std::auto_ptr везде, где только можно. Где нельзя - поправить чтоб было можно и все равно использовать. Если не поможет - обвешиваться проверками на тему "вектор случайно разросся на миллион элементов".
Я к сожалению не программист. И у меня всего-лишь два динамических массива. мне проще через new, чем учить непонятные для меня слова, которые вы написали. Наступит время, конечно, может и выучу, но пока что так.

p.s. Так всё-таки экземпляры/объекты классов streambuf/stringstream надо как-то освобождать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2014, 14:44     Утечка памяти
Еще ссылки по теме:

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

Утечка памяти - C++
Помогите с кодом, вот написал реализацию стека по заданию. Преподаватель попросил проверить, верно ли я использую delete, ибо mas в классе...

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

WinApi - Утечка памяти - C++
Никак не пойму, откуда в этом коде утечка памяти? HWND window = GetDesktopWindow(); RECT windowRect; GetWindowRect(window,...


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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
30.06.2014, 14:44     Утечка памяти #9
Цитата Сообщение от srin Посмотреть сообщение
Так всё-таки экземпляры/объекты классов streambuf/stringstream надо как-то освобождать?
Не зная точно как Вы их создаете - нельзя дать однозначного ответа.
Может Вы делаете что-то такое:
C++
1
ptr = new stringstream;
Тогда конечно нужно потом сделать
C++
1
delete ptr;
В случае автоматических переменных все необходимые действия будут также выполнены автоматически при вызове деструктора (который, в свою очередь, вызывается при выходе переменной из области видимости).
Yandex
Объявления
30.06.2014, 14:44     Утечка памяти
Ответ Создать тему
Опции темы

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