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

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

20.02.2012, 12:42. Показов 3089. Ответов 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
3409 / 2181 / 354
Регистрация: 13.01.2012
Сообщений: 8,461
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
3409 / 2181 / 354
Регистрация: 13.01.2012
Сообщений: 8,461
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
3409 / 2181 / 354
Регистрация: 13.01.2012
Сообщений: 8,461
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
3409 / 2181 / 354
Регистрация: 13.01.2012
Сообщений: 8,461
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
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru