Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нужно ли выгружать переменные? [D7, WinXP]


rolex ©   (2006-03-04 17:57:00) 

procedure Button1Click........
var i:integer; j:in64;
begin
...
i.Free;
j.Free;
end;


Нужны ли выделенные строки?


SergP.   (2006-03-06 16:36:00) [1]


> rolex   (04.03.06 17:57)  
> procedure Button1Click........
> var i:integer; j:in64;
> begin
> ...
> i.Free;
> j.Free;
> end;
>
> Нужны ли выделенные строки?


Уничтожать нужно то что создается, а у тебя тут ничего несоздается...
например:


procedure xxx;
var
a:integer;
b:^integer;
c:TButton;
begin
c:=TButton.Create(TForm1);
new(b);
...
dispose(b); // освобождаем память
c.Free;  // Уничтожаем объект, указатель на который находится в с, но не саму переменную с
// Но переменные a,b и с мы не создавали, и поэтому нефик чего их уничтожать
end;


GrayFace   (2006-03-06 16:15:00) [2]

Хороший Орех!


Гаврила   (2006-03-04 19:29:00) [3]


> память под локальные переменные простых типов (не
> объектных) обрабатывается автоматически


под любые переменные, не только локальные


Desdechado   (2006-03-04 19:23:00) [4]

память под локальные переменные простых типов (не объектных) обрабатывается автоматически


Zeqfreed   (2006-03-04 18:29:00) [5]

При вызове ф-ции для локальных переменных выделяется место в стеке. После завершения ф-ции стек восстанавливается автоматически.


TUser   (2006-03-04 18:08:00) [6]

Нет, более того, такая штука даже не скомпилируется.


rolex   (2006-03-04 17:58:00) [7]

ой, end;не включается в выделение :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо