Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.012 c
10-1113213878
uli
2005-04-11 14:04
2006.02.05
Ошибка при проверке существования экземпляра ВОРД


2-1137800549
Sysanin
2006-01-21 02:42
2006.02.05
webBrowser


2-1137508900
_white_
2006-01-17 17:41
2006.02.05
Как установить API?


2-1137694944
Tolik
2006-01-19 21:22
2006.02.05
CreateThread(nil,0,@MyProcedure,0,0,nil);


1-1136712811
BiggieSmalls
2006-01-08 12:33
2006.02.05
Генератор случайных букв :)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский