Процедура 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 — переменная, которая не имеет никакого значения.
