Вниз
Скачать: CL | DM;

Непонятка с указателями и списком TList   Найти похожие ветки 

← →
Antip   (2006-01-20 21:59) [0]

До этого старался избегать работать с указателями, но если все делать правильно, то это вполне интересное занятие ;) Только некоторые моменты начинаешь не понимать). Так вот у меня возник вопрос, а нужно ли в моем случае после объявления указателя aMyItem и добавления его в список приравнивать к nil, чтобы уничтожить указатель и избежать какой-либо утечки памяти? Главное, что работает в обоих случаях и по идее если я уничтожаю указатель aMyItem, то должен такой же уничтожится и в TMyList, ведь адреса то вроде у них одинаковы. Или я что-то путаю?
Спасибо заранее за помощь.

Вот исходник мой:

 TMyItem = record
   Name     : WideString;
 end;
 pMyItem = ^TMyItem;
 TMyList = TList;
...
var
 Form1: TForm1;
 List: TMyList;
...
 List := TMyList.Create;
...

procedure TForm1.Button1Click(Sender: TObject);
var aMyItem : pMyItem;
begin
 New(aMyItem);
 aMyItem.Name := "Привет";
 List.Add(aMyItem);
 aMyItem := nil;
end;


← →
Desdechado ©   (2006-01-20 22:53) [1]

в tlist ты добавил указатель на память
aMyItem := nil; - это НЕ освобождение, освобождение делается через Dispose
теперь этот указатель указывает ни на что
а в листе СВОЙ указатель, который указывает на ту область памяти, которую ты выделил


← →
Джо ©   (2006-01-20 22:57) [2]

> aMyItem := nil;

Нет, это лишнее и ни к чему не приведет.


← →
Antip   (2006-01-20 22:59) [3]

Спасибо братцы, теперь понял ;)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.037 c
3-1133968893
Василий И.
2005-12-07 18:21
2006.02.05
Драйвер Jet!!


15-1137183247
tesseract
2006-01-13 23:14
2006.02.05
Выгорит ли reactos?


2-1137495060
ilya39
2006-01-17 13:51
2006.02.05
ColumnHeader в FCL


1-1135919649
markers
2005-12-30 08:14
2006.02.05
Отправка текста на E-mail


2-1137432508
tort
2006-01-16 20:28
2006.02.05
Копировать файлы




   Наверх