Форум: "Начинающим";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
ВнизНепонятка с указателями и списком 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 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.011 c