Процедура Dispose

Освобождает место, занятое динамической переменной в памяти.

Объявление:

Procedure Dispose(Var P : Pointer [ , Destructor ]);

Режим:

Windows,  Protected,  Real

Замечание:

Не должна использоваться совместно с процедурами Mark или Release. Объявление процедуры Dispose, было расширено так, что теперь она может также освобождать память занятую объектом, распределенным в куче, если вы передаете деструктор этого объекта как второй параметр, например: Dispose(P, Done); После обращения к Dispose, значение указателя P становится неопределенным и ссылаться на него является ошибкой. Если P не указывает на область памяти в куче, то происходит ошибка во время выполнения программы.

Пример:

{ Пример программы для процедур New и Dispose }
 
Type Str18 = String[18];

var P : ^Str18;
 
Begin
    New(P);
    P^:='Сейчас переменная есть...';
    Dispose(P);  { А теперь уже нет... }
End.