Процедура FreeAndNil в Delphi звільнення пам'яті об'єкта та встановлення його в nil.
SysUtils unit
procedure FreeAndNil (var ObjectReference);
Процедура FreeAndNil звільняє пам'ять, що використовується об'єктом, та встановлює об'єктне посилання на нуль (nil).
Насправді це робиться у зворотному порядку – спочатку розіменовується об'єкт, а потім звільняється пам'ять. Це дуже чистий спосіб вивільнення ресурсів.
Процедура FreeAndNil: Звільнення та обнулення об'єкта, а потім намагаємося зробити це знову
var
myList : TList;
begin
// Створення об'єкта списку
myList := TList.Create;
// І тепер звільняємо та обнулюємо цей об'єкт
FreeAndNil(myList);
// Ми можемо зробити це безпечно двічі – вона ігнорує нульові об'єкти
FreeAndNil(myList);
end;
Результат
Виключення не відбувається - другий FreeAndNil нічого не робить.
Подібні функції, процедури та команди
FreeMem — звільняє пам'ять, що використовується змінною.
GetMem — отримує вказану кількість байтів пам'яті.
Nil — значення не присвоєного покажчика.
Null — змінна, яка не має жодного значення.
