Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
25 / 25 / 14
Регистрация: 05.05.2014
Сообщений: 115

Утечка памяти

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

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

Может кто что подскажет?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.06.2014, 16:03
Ответы с готовыми решениями:

Утечка памяти
Привет! написал программму, и не могу разобраться где утекает память. помогите кто сможет. Задание #include <iostream>...

Утечка памяти?
В Лафоре такой код: #include <iostream> using namespace std; /////////////////////////////////////////////////////////// class...

Утечка памяти
В небольшой программе с использованием OpenCV происходит утечка памяти, с чем связана не понимаю, прошу помощи, спасибо! #include...

8
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
28.06.2014, 16:19
Цитата Сообщение от srin Посмотреть сообщение
- Динамическая память. Но вроде освобождаю правильно.
Ну тогда и утечек нет.

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

На основании чего Вам подскажут? Даже телепаты помрут от перенапряжения. Ищите где утекает.
1
25 / 25 / 14
Регистрация: 05.05.2014
Сообщений: 115
28.06.2014, 16:25  [ТС]
хорошо, streambuf/stringstream не может жрать память?
0
31 / 31 / 32
Регистрация: 21.06.2014
Сообщений: 81
28.06.2014, 16:38
Не видя кода, тяжело что-то вам порекомендовать. Скорее всего вы где-то не освобождаете выделенную память.
1
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
28.06.2014, 22:17
Цитата Сообщение от srin Посмотреть сообщение
- Динамическая память. Но вроде освобождаю правильно.
В Visual Stuidio можно проверить под отладчиком.
2
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
28.06.2014, 23:29
- Динамическая память. Но вроде освобождаю правильно.
Не освобождать, вместо этого использовать std::map, std::vector, std::list, std::unique_ptr(его и в вектор пихать можно)/std::auto_ptr везде, где только можно. Где нельзя - поправить чтоб было можно и все равно использовать. Если не поможет - обвешиваться проверками на тему "вектор случайно разросся на миллион элементов".
1
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
28.06.2014, 23:51
Valgrind
1
25 / 25 / 14
Регистрация: 05.05.2014
Сообщений: 115
30.06.2014, 14:20  [ТС]
Всем спасибо за ответы. Правда ничем не пользовался. Переписывал немного код и нашёл, что в одном месте забыл вставить mysql_free_result. Скорее всего из-за этого и была утечка памяти. По крайней мере программа теперь так сильно не пухнет.

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

p.s. Так всё-таки экземпляры/объекты классов streambuf/stringstream надо как-то освобождать?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
30.06.2014, 14:44
Цитата Сообщение от srin Посмотреть сообщение
Так всё-таки экземпляры/объекты классов streambuf/stringstream надо как-то освобождать?
Не зная точно как Вы их создаете - нельзя дать однозначного ответа.
Может Вы делаете что-то такое:
C++
1
ptr = new stringstream;
Тогда конечно нужно потом сделать
C++
1
delete ptr;
В случае автоматических переменных все необходимые действия будут также выполнены автоматически при вызове деструктора (который, в свою очередь, вызывается при выходе переменной из области видимости).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.06.2014, 14:44
Помогаю со студенческими работами здесь

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

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

утечка памяти
есть функция генерирующая массив из строк, которые могут быть составлены из символов alph. При length = даже 7 расходуется более 5гб...

Утечка памяти
Взял листинг кода из книги Стивен Прата Язык программирования С++. Меня терзают смутные сомнения нет ли здесь утечки памяти, указатель ...

Утечка памяти
Подскажите, где здесь может возникать утечка памяти? Вроде везде, где можно - чищу... ///////////////////////////////////// // It's...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru