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

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

Войти
Регистрация
Восстановить пароль
 
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
#1

утечки памяти - просто жесть - C++

21.08.2013, 21:05. Просмотров 790. Ответов 13
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
analysis *SP[2]; // объявляем классы
SP[0] = new analysis(Edit1->Text); //загружаем данные
SP[1] = new analysis(Edit2->Text); //загружаем данные
SP[0]->perform_analysis(SP[1]); // проводим анализ
 //удаляем 
 //delete SP[0];
 //delete SP[1];
так вот, что коменчу, что не коменчу delete , память в диспетчере, утекает!! рисует мне какието 60 метров каждый раз! т.е. при нажатии кнопки "вычислить"(кнопка которая запускает анализ) я получаю в диспетчер по 60 метров - Это пилец, хана просто!!! всё работает прекрасно и было обрадовался пока не посмотрел на диспетчер задач
что делать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.08.2013, 21:05     утечки памяти - просто жесть
Посмотрите здесь:

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

Я создаю утечки памяти ! - C++
Нет, я не хочу похвастаться этим. Я любитель использовать быстрые решение для того чтобы реализовать алгоритм или проверить "чтобы...

Не будет ли утечки памяти? - C++
Привет. Мне нужно очистить строку (массив символов) char str; делаю так str = '\0'; не будет ли это утечкой? P. S. думаю нет,...

Поиск утечки памяти - C++
Здравствуйте! Не могли бы вы помочь мне найти утечку памяти в программе? Весь день искал, все вроде бы удаляется, но 4 мб все равно...

Определение утечки памяти - C++
Здравствуйте! Имеется такая ситуации: к проекту подключается lib файл и создается класс наследуемый класс определенный в либе. Подскажите...

Про утечки памяти - C++
Здравствуйте. Может кто-нибудь посоветовать статьи на тему борьбы с утечками памяти? Дело в том, что недавно начал писать на C++ с...

Утечки памяти и STL - C++
Имеется код: #include <map> #define _CRTDBG_MAP_ALLOC #include <stdlib.h> #include <crtdbg.h> using namespace...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
Эксперт С++
15295 / 6927 / 1096
Регистрация: 02.05.2013
Сообщений: 11,334
Завершенные тесты: 1
21.08.2013, 21:15     утечки памяти - просто жесть #2
1) Возможно, утечка (если она есть вообще) в теле perform_analyzis.

2) Диспетчер задач - не та программа, которой следует руководствоваться при анализе утечек.
Используйте специально предназначенные для этого средства - Intel Inspector, valgrind, debug crt и т.д.

3) Пока Вы будете руками звать new/delete, open/close, add_ref/release, утечки будут все равно.
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
21.08.2013, 21:21  [ТС]     утечки памяти - просто жесть #3
Цитата Сообщение от Убежденный Посмотреть сообщение
Диспетчер задач - не та программа
ну как не та! она мне показывает, что есть касяк - и не только мне, любому пользователю кто ей будет пользоваться. моя программа в buildere так что попробую разобраться AQtime(или попробую щяс dr Memory я с ним работал - он вроде отлавливал утечки)я просто очень не понимаю почему delete вообще не хочет работать
Цитата Сообщение от Убежденный Посмотреть сообщение
Пока Вы будете руками звать new/delete, open/close, add_ref/release, утечки будут все равно
так так так, а вот это интересно, что использовать вместо них? умные указатели?
Убежденный
Системный программист
Эксперт С++
15295 / 6927 / 1096
Регистрация: 02.05.2013
Сообщений: 11,334
Завершенные тесты: 1
21.08.2013, 21:28     утечки памяти - просто жесть #4
Цитата Сообщение от soican Посмотреть сообщение
ну как не та!
Для анализа утечек в диспетчере задач отсутствует главное - возможность
отделить операции с памятью, которые выполняются вашим кодом, от тех, которые
выполняются другими компонентами, загруженными в процесс. Вызовите, например,
GetOpenFileName, и увидите целую пачку новых мегабайт и хэндлов, которые вы
"не заказывали", даже после выхода из функции.

Цитата Сообщение от soican Посмотреть сообщение
так так так, а вот это интересно, что использовать вместо них? умные указатели?
Умные указатели, BOOST_SCOPE_EXIT и прочие RAII-обертки.
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
21.08.2013, 21:36  [ТС]     утечки памяти - просто жесть #5
Цитата Сообщение от Убежденный Посмотреть сообщение
Вызовите, например,
GetOpenFileName
я впринципе открываю записываю какието файлы во время perform_analysis
...блин, главный косяк последовательное нажимание кнопки "вычислить" фигачят мне 60 метров, и я просто негодую оттого что delete не работает, отстойный delete вообще никакущий! изза него придётся разбираться с указателями всякими умными!!! хочется засунуть страуструпа в мешок и повесить в боксерском зале!
gray_fox
21.08.2013, 21:53
  #6

Не по теме:

Цитата Сообщение от soican Посмотреть сообщение
отстойный delete вообще никакущий! изза него придётся разбираться с указателями всякими умными!!! хочется засунуть страуструпа в мешок и повесить в боксерском зале!
) так зачем тебе С++? )

Kastaneda
Форумчанин
Эксперт С++
4511 / 2853 / 227
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
21.08.2013, 21:53     утечки памяти - просто жесть #7
Цитата Сообщение от soican Посмотреть сообщение
нажимание кнопки "вычислить" фигачят мне 60 метров,
Выше же вроде объяснили, что не стоит полагаться на то, что пишет диспетчер задач.
Jupiter
21.08.2013, 21:55
  #8

Не по теме:

Цитата Сообщение от soican Посмотреть сообщение
хочется засунуть страуструпа в мешок и повесить в боксерском зале!
а вас куда засунуть? устроили тут шок, жесть, "Скандалы, интриги, расследования"

Kastaneda
Форумчанин
Эксперт С++
4511 / 2853 / 227
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
21.08.2013, 21:56     утечки памяти - просто жесть #9
Цитата Сообщение от soican Посмотреть сообщение
delete не работает
delete, кстати, внутри себя использует средства ОС, так что ругай Windows, и Б.Г. заодно
Убежденный
Системный программист
Эксперт С++
15295 / 6927 / 1096
Регистрация: 02.05.2013
Сообщений: 11,334
Завершенные тесты: 1
21.08.2013, 22:19     утечки памяти - просто жесть #10
Цитата Сообщение от soican Посмотреть сообщение
я впринципе открываю записываю какието файлы во время perform_analysis
...блин, главный косяк последовательное нажимание кнопки "вычислить" фигачят мне 60 метров, и я просто негодую оттого что delete не работает, отстойный delete вообще никакущий!
А с чего Вы решили, что именно этот delete виноват ?
Может, утечка в perform_analysis, может деструктор analysis не очищает ресурсы,
может неверно написан какой-нибудь конструктор копирования и т.д.
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
21.08.2013, 22:53  [ТС]     утечки памяти - просто жесть #11
Цитата Сообщение от Убежденный Посмотреть сообщение
Может, утечка в perform_analysis, может деструктор analysis не очищает ресурсы
скорее всего ты прав, я пробовал пошагово пройти, так вот F7 после
C++
1
delete SP[0];
кидануло меня в деструктор класса analysis - но вот почему то в деструктор creating(предок analysis ) не кидануло - не знаешь почему?
Убежденный
Системный программист
Эксперт С++
15295 / 6927 / 1096
Регистрация: 02.05.2013
Сообщений: 11,334
Завершенные тесты: 1
21.08.2013, 23:01     утечки памяти - просто жесть #12
Цитата Сообщение от soican Посмотреть сообщение
кидануло меня в деструктор класса analysis - но вот почему то в деструктор creating(предок analysis ) не кидануло - не знаешь почему?
Знаю. Там в деструкторе creating стоит "delete m_pData", а должно быть "delete [] m_pData".
Шутка Не видя кода, ничего нельзя сказать наверняка.
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
21.08.2013, 23:37  [ТС]     утечки памяти - просто жесть #13
да нет конечно...всё кидануло в деструктор предка

Добавлено через 1 минуту
Цитата Сообщение от Убежденный Посмотреть сообщение
"delete m_pData", а должно быть "delete [] m_pData".
точняк я же совсем не думал о том где ставть [] а где нет!

Добавлено через 8 минут
Цитата Сообщение от Убежденный Посмотреть сообщение
Не видя кода, ничего нельзя сказать наверняка
это полюбому, там тыщи строк! мой верный друг - пошаговый debuging мне в помощь, я найду где страуструп у меня ворует память!

Добавлено через 23 минуты
нашёл)) это всё оказывается soican навыделял памяти в цикле:
C++
1
2
3
4
5
6
7
8
9
10
for (int j = 0; j < N_parts[1]; j++)
{...
 // создадим массивы для оставшихся разбиений
  for (int g = 1; g < 4; g++)
   {mesh[g] = new point *[n_razb[0]+1];
     for (int g1= 0; g1< n_razb[0]+1; g1++)
    mesh[g][g1]=new point[n_razb[1]+1];
   }
...
}
а удалил после цикла
C++
1
2
3
4
5
6
7
//  удаляем созданные массивы
for (int i= 1; i< 4; i++)
 {for (int j= 0; j< n_razb[0]+1; j++)
    delete[] mesh[i][j];
   delete[] mesh[i];
 }
delete[] mesh;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2013, 23:58     утечки памяти - просто жесть
Еще ссылки по теме:

Объяснить причины и способы устранения утечки памяти в деструкторе - C++
Почему если убрать коммент с деструктора, что закомментирован выбивает ошибка: &quot;утечка памяти&quot;? #include &quot;cow.h&quot; int main() { Cow...

подскажите пожалуйста, правильно ли сделанна конструкция, и не будет ли утечки памяти - C++
vector&lt;int*&gt; mas; int* buf; for(int i=0;i&lt;10;i++) { buf=new int; mas.push_back(buf); } delete buf; for(int...

Утечки памяти при использовании new/delete для двумерных массивов - C++
Добрый день. Суть в том, что есть несколько функций, получающих на вход и возвращающих двумерные массивы. Реализация передачи массивов...

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

Жесть а не код... - C++
Доброго времени суток всем кто на этом прекрасном ресурсе. Ну как обычно: в С++ я новичок, я больше по web и т.д. Люди, нужна помощь. Есть...


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

Или воспользуйтесь поиском по форуму:
Avazart
Эксперт С++
7117 / 5294 / 273
Регистрация: 10.12.2010
Сообщений: 23,413
Записей в блоге: 17
21.08.2013, 23:58     утечки памяти - просто жесть #14
Цитата Сообщение от soican Посмотреть сообщение
я впринципе открываю записываю какието файлы во время perform_analysis
отстойный delete вообще никакущий! изза него придётся разбираться с указателями всякими умными!!! хочется засунуть страуструпа в мешок и повесить в боксерском зале!
Прикольно, все равно что ругается на веник (он ведь тоже не метёт, если руки-крюки)
Yandex
Объявления
21.08.2013, 23:58     утечки памяти - просто жесть
Ответ Создать тему
Опции темы

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