FreeMem

Adam Boduch
FreeMem
Moduł: System
```delphi procedure FreeMem(var P: Pointer[; Size: Integer]); ``` [[Delphi/Procedury|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 [[Delphi/Wyjątki|wyjątek]]. Jeżeli P wskazuje na [[Delphi/Rekordy|rekord]] zawierający długie [[Delphi/String|łańcuchy]] wcześniej należy wywołać procedurę [[Delphi/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ż:

0 komentarzy