Утечка памяти QTreeWidget. Может баг QT ? |
Здравствуйте, гость ( Вход | Регистрация )
Утечка памяти QTreeWidget. Может баг QT ? |
DEADHUNT |
9.8.2010, 0:02
Сообщение
#11
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
после удаления элемента кол-во элементов в виджете станет на единицу меньше, а ты это не проверяешь. вместо itemsCount надо всё время звать функцию, которая вернёт кол-во элементов в виджете всё правильно, т.к. удаляется самый верхний элемент. количество итераций == начальному числу top level item`ом. |
|
|
Гость_Гость_dreamcode_*_* |
9.8.2010, 0:39
Сообщение
#12
|
Гости |
после удаления элемента кол-во элементов в виджете станет на единицу меньше, а ты это не проверяешь. вместо itemsCount надо всё время звать функцию, которая вернёт кол-во элементов в виджете Когда я добавляю элемент тогда itemsCount++ itemsCount=количество элементов в виджете , И что ни кто не сталкивался с проблемой утечки в QTreeWidget ??? |
|
|
kuzulis |
9.8.2010, 7:45
Сообщение
#13
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Цитата И что ни кто не сталкивался с проблемой утечки в QTreeWidget ??? Да нет никакой утечки! Расслабтесь! |
|
|
dreamcode |
9.8.2010, 8:07
Сообщение
#14
|
Студент Группа: Участник Сообщений: 52 Регистрация: 2.11.2009 Пользователь №: 1201 Спасибо сказали: 1 раз(а) Репутация: 0 |
|
|
|
Алексей1153 |
9.8.2010, 8:47
Сообщение
#15
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
а вот такой код удаления, наверное, лучше
|
|
|
Авварон |
9.8.2010, 8:59
Сообщение
#16
|
Студент Группа: Участник Сообщений: 99 Регистрация: 26.4.2009 Пользователь №: 709 Спасибо сказали: 14 раз(а) Репутация: 0 |
Аргументируй тогда куда память девается !!!! блин, еще раз - диспетчер показывает ОБЩУЮ память приложения, когда-либо выделенную осью аппликухе. Удалив айтемы, память операционке ты не вернешь (да и не нужно это). В куче будет свободная память, которая может быть использована как повторно в тривьюхе, так и в других местах. Пример - создав строку размером 500 метров ты отожрешь 500 метров ОП и диспетчер этр покажет. Удалив строку, ты освободищь память в куче и создав такую же строку еще раз, память у ОС запрашиваться не будет (в диспетчере будет те же 500мб) |
|
|
Алексей1153 |
9.8.2010, 9:21
Сообщение
#17
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Можно потестировать вручную
Затем, после удаления, зайти отладчиком и попробовать доступ к каждому из элементов
в консоли приложения при попытке обращения пишут (Internal error: pc 0x201 in read in psymtab, but not in symtab.) (хотя исключение не летит, хм, прикольно. В студии вылетает с треском ) |
|
|
Авварон |
9.8.2010, 11:27
Сообщение
#18
|
Студент Группа: Участник Сообщений: 99 Регистрация: 26.4.2009 Пользователь №: 709 Спасибо сказали: 14 раз(а) Репутация: 0 |
Можно потестировать вручную
Затем, после удаления, зайти отладчиком и попробовать доступ к каждому из элементов
в консоли приложения при попытке обращения пишут (Internal error: pc 0x201 in read in psymtab, but not in symtab.) (хотя исключение не летит, хм, прикольно. В студии вылетает с треском ) в с++ SIGSEGV не выкидывает искючений |
|
|
Алексей1153 |
9.8.2010, 12:00
Сообщение
#19
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Авварон, у меня в креаторе тоже не выпало, но надпись в консоли красным цветом появилась всё же
|
|
|
igor_bogomolov |
9.8.2010, 12:20
Сообщение
#20
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Цитата(Алексей1153) у меня в креаторе тоже не выпало, но надпись в консоли красным цветом появилась всё же Красную надпись объяснить легко
К сожалению (а может и к счастью) ошибка сегментации, так же как и деление на ноль, не являются исключениями с++ и через try/catch ты их не отловишь. Цитата(Алексей1153)
|
|
|
Текстовая версия | Сейчас: 19.4.2024, 18:52 |