Moduły » System

FreeMem

FreeMem
Moduł: System

procedure FreeMem(var P: Pointer[; Size: Integer]);

Procedura niszczy zmienną na którą wskazuje parametr P oraz zwraca zarezerwowaną pamięć na stertę. Jeżeli P nie wskazuje na blok pamięci zarezerwowany na stercie aplikacja wykona wyjątek. Jeżeli P wskazuje na rekord zawierający długie łańcuchy wcześniej należy wywołać procedurę Finalize.

Przykład:

program Foo;
 
{$APPTYPE CONSOLE}
 
var
  TF : File;
  Buffer : PChar;
  Size : Integer;
begin
  AssignFile(TF, 'C:\mysqlnet.msi');
  try
    Reset(TF, 1);
 
    Size := FileSize(TF);
    GetMem(Buffer, Size);
    try
      BlockRead(TF, Buffer^, Size);
 
      { operacje na buforze Buffer }
    finally
      FreeMem(Buffer);
    end;
  finally
    CloseFile(TF);
  end;
 
  Readln;
end.


Parametr opcjonalny - Size, może określać ilość bajtów, które zostaną zwolnione; musi określać tę samą ilość bajtów, które zostały zadeklarowane.

Zalecane jest użycie procedur New oraz Dispose; nie jest wówczas konieczne użycie procedury Finalize

Zobacz też: