![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Добрый вечер. Ранее затрагивал вопрос о том, как правильно освободить память занимаемую объектом. Советы не подействовали, хотя, может я чего то и недопонимаю, подскажите. Код класса TNObject содержится во вложении. Текс программы следующий:
Par.Host := 'localhost'; Par.Port := 1067; Par.AOwner := Self; for i := 1 to ParcelCount - 1 do Begin Obj := TNObject.Create(Par,Parcel[i]); //Действия с объектом Obj Obj.Destroy; End; Если ParcelCount принимает большое значение, память уходит катастрофически. Как быть? |
|
#2
|
||||
|
||||
|
Для потоков так:
FreeAndNil(поток); либо эквивалент: Поток.Free; Поток := nil; Попробуй так: Obj.Free; Obj := NIL; Ну и не только для потоков |
|
#3
|
||||
|
||||
|
ZeroMemory и FreeMem еще можно
классы еще можно через деструктор освобождать Class.Destroy (но это слишком грубо) ![]() |
|
#4
|
||||
|
||||
|
Цитата:
ZeroMemory - заполняет область памяти нулями, но не освобождает ее. FreeMem - освобождает область памяти по указателю, к классам не применима. |