С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109

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

20.02.2012, 12:42. Показов 3049. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. У меня такая проблемка: программа вылетает после продолжительной работы, примерно несколько часов может работать нормально, а в результате вылазит ошибка с таким вот содержанием:
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: Stend.exe
Версия приложения: 0.0.0.0
Отметка времени приложения: 00000000
Имя модуля с ошибкой: Stend.exe
Версия модуля с ошибкой: 0.0.0.0
Отметка времени модуля с ошибкой: 00000000
Код исключения: c0000094
Смещение исключения: 000021dc
Версия ОС: 6.1.7600.2.0.0.256.48
Код языка: 1049
Дополнительные сведения 1: 0a9e
Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
Дополнительные сведения 3: 0a9e
Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789
или если из под Билдера тестировать, то такая ошибка как на рисунке.



Заметил что идет утечка памяти, т.е. память постоянно растет в Диспетчере, но очень медленно... все проверил, все new\delete ... все в норме... Не подскажите, что можно предпринять ?

 Комментарий модератора 
DenProx, для вложений используйте встроенные возможности форума: кнопка Расширенный режим->Управление вложениями внизу окна редактирования сообщения, или , или в окне редактирования нажмите на скрепку.
Правила
2.11. Картинки загружайте на форум, во избежание их удаления или потери на сторонних ресурсах.
Картинки можно вставлять в любое место поста: для этого нужно в это место установить курсор, нажать на скрепку и выбрать картинку из выпадающего списка Памятка "Как работать в редакторе сообщений"
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.02.2012, 12:42
Ответы с готовыми решениями:

Утечка памяти
Всем привет. Подскажите пожалуйста в этом коде будет ведь утечка памяти? // Create the outer JSON object which parents the others. ...

Утечка памяти
Подскажите, где происходит утечка памяти? Размер используемой памяти постоянно растет. + Как можно ускорить работу, очень медленно...

Утечка памяти
Здравствуйте. Есть функция void fun(...) { TStringList *L = new TStringList(); ... ... delete L; }

10
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
20.02.2012, 13:03
попробуйте поставить все галочки в свойствах проекта на закладке codeguard и позапускать / позакрывать программу - если что то кудато течет или освобождается по два раза он должен показать
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
20.02.2012, 13:24  [ТС]
Сделал, он показал следующее:

что это может означать?
Миниатюры
Утечка памяти.  
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
20.02.2012, 13:59  [ТС]
похоже нашел место, но не понимаю почему ...

вот скрин:
Миниатюры
Утечка памяти.  
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
20.02.2012, 14:01  [ТС]
а компилятор показывает что в этом месте что то не то:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TTrend::Deinitialize(void)
{
        ULONG i;
        for (i=0;i<5;i++)
        {
                delete values[i]; //<-------------- Вот тут выделяет строку
                //delete Saved_values[i];
        }
        delete Saved_ms;
        delete Saved_s;
        delete Saved_m;
};
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
20.02.2012, 14:40
а что лежит в values[i]? он вроде говорит что ожидает найти там указатель на объект, а находит нечто другое

Добавлено через 58 секунд
может там просто объект? тогда его не нужно удалять - удалите просто массив.
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
20.02.2012, 14:42  [ТС]
инициализируется вот здесь:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
void __fastcall TTrend::Initialize(void)
{
    ULONG i,j;
    sec = 0;
    min = 0;
    ms = 0;
    Counter = 0;
    Saved_counter = 0;
    recount_tick = 0;
 
    /*if (time_sec<visible_seconds)
    {
        visible_seconds = time_sec;
    }*/
    iNumPoints = visible_seconds*1000/point_interval;
    for (i=0;i<5;i++)
    {
        Value[i] = (FMax_y+FMin_y)/2;
        values[i] = new double[iNumPoints];
    }
 
    for (j=0;j<5;j++) for (i=0;i<iNumPoints;i++) *(values[j]+i) = Value[j];
 
//For saved data ----
    Saved_count = (time_sec)*1000/point_interval;
    /*for (i=0;i<5;i++)
    {
        Saved_values[i] = new double[Saved_count];
    }*/
    Saved_ms = new unsigned long [Saved_count];
    Saved_s = new unsigned long [Saved_count];
    Saved_m = new unsigned long [Saved_count];
}
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
20.02.2012, 14:48
C++
1
delete values[i]; //<-------------- Вот тут выделяет строку
говорят, массив следует удалять так
C++
1
delete[] values;
1
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
20.02.2012, 14:49
попробуйте делать
C++
1
delete [] values[i];
но я думаю что настоящая ошибка не в этом - вы просто ее не дождались, она где-то дальше, сейчас будете потихоньку вычищать
1
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
21.02.2012, 09:15  [ТС]
Хорошо, попробую. О результатах потом напишу

Добавлено через 15 часов 59 минут
Попробовал сделать, как сказали. Вроде бы есть какие то изменения, щас пока тестируется. Есть такой вопрос, исправлять нужно, или искать неполадки до тех пор пока в CodeGuard перестанут поступать сообщения с ошибками? или в него всегда будет выводится какая нибудь информация?

p.s. как можно очистить историю ошибок в CodeGuard ?
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
21.02.2012, 12:16
исправлять.каждый запуск-новый лог
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.02.2012, 12:16
Помогаю со студенческими работами здесь

Утечка памяти CppWebBrowser
Всем здравствуйте У меня возникла проблема: Утечка памяти CppWebBrowser вот код IHTMLDocument2 *pHTMLDocument; ...

Утечка памяти в streambuf?
Итак есть программа, которая обязана постоянно работать, принимать данные по сети, отправлять в SQL и визуализировать. Логика такая: ...

Огромная утечка памяти в CppWebBrowser
Доброго времени суток. Открываю в компоненте CppWebBrowser 300 страниц подряд (URL разные) в итоге к концу работы программа набирается...

TStringList ** утечка памяти, Что делать?
Вот пример, тут возникает утечка памяти. Как правильно оформить удаление в функции test()??? TStringList **SL; int main() { for...

Шаблоны STL & утечка памяти.
Доброе время суток. Имеются 2 класса: 1)TVoteServer 2)TVoteServers - класс коллекция TVoteServer Реализация следующая: ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru