Язык:
Русский
English
FreeMem (процедура)
Освобождает память, занятую динамической переменной данного размера.
Объявление
Procedure FreeMem(Var P : Pointer; Size : Word);
Режим
Windows, Real, Protected
Замечания
Параметр P - переменная любого указательного типа, предварительно распределенная в памяти процедурой GetMem или та, которой было присвоено значение оператором присваивания.
Параметр Size - выражение, определяющее размер динамической переменной в байтах, память, занимаемую которой нужно освободить. Он должен быть равен числу байт, предварительно распределенных для этой переменной процедурой GetMem.
Процедура FreeMem уничтожает переменную, связанную с P и освобождает память, занимаемую этой переменной. Если P не указывает на область памяти в куче, то происходит ошибка во время выполнения программы. После обращения к FreeMem, значение P становится неопределенным и если вы впоследствии пытаетесь сослаться на P^, то происходит ошибка.
Ограничения
Нельзя использовать совместно с Mark или Release.
См. также
Пример
Язык:
Русский
English
type TFriendRec = record
Name : String[30];
Age : Byte;
end;
var
P : Pointer;
begin
if MaxAvail < SizeOf(TFriendRec) then
WriteLn('Недостаточно памяти')
else
begin
{ Распределяем память в куче }
GetMem(P, SizeOf(TFriendRec));
{ ...}
{ ... Используем память ... }
{ ...}
{ Освобождаем её при завершении программы }
FreeMem(P, SizeOf(TFriendRec));
end;
end.