![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Пользователь
Регистрация: 10.12.2010
Сообщений: 12
|
![]() Цитата:
procedure TForm1.btn7Click(Sender: TObject); Var I: Integer; InfromationGraphElement: PInfromationGraphElement; begin for I := 0 to TempList.Count - 1 do Begin InfromationGraphElement := TempList.Items[I]; Dispose(InfromationGraphElement); End; TempList.Free; end; то очищается только список TempList (т.е. удаляются адреса в этом списке) а сами объекты InfromationGraphElement не удаляются. Dispose(InfromationGraphElement); не удаляется из памяти поскольку есть ссылка на InformationNod. если я удалю InformationNod, то после выполнения Dispose(InfromationGraphElement); память освободиться. Попробуй сам это сделать. текст всех структур приведен выше. Память не освобождается. Я не дурак и не впервый раз пишу программы, но здесь реально проблема. Давай я тебе вышлю проект и ты посмотришь. |
|
![]() |
![]() |
![]() |
#12 |
Пользователь
Регистрация: 10.12.2010
Сообщений: 12
|
![]()
procedure TForm1.btn7Click(Sender: TObject);
Var I, J : Integer; InfromationGraphElement, TempInfromationGraphElement : PInfromationGraphElement; InformationNode : PInformationNode; InformArc : PInformArc; InformationPrevGraphElement : PInformationPrevGraphElement; Str :string; begin for I := 0 to TempList.Count - 1 do Begin InfromationGraphElement := TempList.Items[I]; //-----Если закомментарить то InfromationGraphElement не удаляется из памяти------- InformationNode := InfromationGraphElement.Information Node; InformationNode.ListElement.Free; InformationNode.ListPins.Free; Dispose(InformationNode); //--------------------------------------------------------- Dispose(InfromationGraphElement); End; TempList.Free; end; Если создавать элементы InfromationGraphElement и после обработки их удалять, чот я и хочу, то я вижу только то, что у меня память растет и потом вылетает ошибка Out of Memory!!!! Видно только то что удаляются ячейкиTempList которые занимают по 4 байта каждая и все. Последний раз редактировалось Vyachek2010; 07.02.2011 в 15:38. |
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 10.12.2010
Сообщений: 12
|
![]()
Сделал как ты говорил но память освободилась только после того как я свернул приложение. опять же смотрел по диспетчеру задач. В чем здесь дело?
Последний раз редактировалось Vyachek2010; 07.02.2011 в 16:04. |
![]() |
![]() |
![]() |
#14 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
В том, что диспетчер задач показывает не то, что вы ожидаете.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#15 |
Пользователь
Регистрация: 10.12.2010
Сообщений: 12
|
![]()
переделал с record на class и все стало нормально
PInfromationGraphElement = ^TInfromationGraphElement; TInfromationGraphElement = record IndexID: Integer; TypeConstruction: Integer; InformationNode: PInformationNode; End; TInfromationGraphElement = class IndexID: Integer; TypeConstruction: Integer; InformationNode: PInformationNode; End; |
![]() |
![]() |
![]() |
#16 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
тут программа делает то что вы написали. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Кольцевая очередь на массиве в статической памяти с элементами в динамической памяти | ]tach[ | Общие вопросы C/C++ | 1 | 19.01.2011 13:16 |
Проблема с утечкой памяти | ExPeL | Win Api | 4 | 21.10.2010 22:13 |
Проблема с виделением памяти! | FreTFuL | Общие вопросы C/C++ | 1 | 07.05.2010 20:23 |
самописный assert: проблема с утечкой памяти) | sashonk | Общие вопросы C/C++ | 2 | 26.04.2010 15:58 |
Проблема выделения динамической памяти в С++ | oxygen90 | Помощь студентам | 3 | 14.09.2009 21:47 |