FreeMem, процедура

Синтаксис


procedure FreeMem(P: Pointer);

Описание

Процедура FreeMem освобождает память, на которую указывает Р, с помощью встроенного менеджера памяти. FreeMem не является настоящей процедурой.

Ошибки

Советы и приемы

  • Р может быть равен nil, в этом случае FreeMem возвращает управление сразу.
  • При освобождении памяти никогда не следует освобождать указатель более одного раза и обращаться к памяти после ее освобождения.
  • Чтобы избежать ошибок, особенно в многопоточной программе, следует обнулить глобальные переменные и поля объектов до освобождения памяти. Необходимо удостовериться в отсутствии участков программы, в которых переменная или поле содержит неверный указатель. Например:
    procedure FreeMemAndNil(var P);
    var
    Imp: Pointer; begin
    Imp := Pointer(P);
    Pointer(P) := nil;
    FreeMem(Tmp); end;
  • В случае применения встроенного менеджера памяти FreeMem поддерживает многопоточность, т.е. может быть вызывана одновременно из нескольких потоков (в том случае, если IsMultiThread paвна True).
  • Используйте процедуру FreeMem для освобождения памяти, выделенной GetMem, и Dispose - для освобождения памяти, выделен процедурой New.

Пример



Смотрите также

Процедуры Dispose, GetMem, ReallocMem, SetMemoryManager, функция SysFreeMem.
    Учебник по языку Pascal          Лабораторные работы по программированию          Справочник



2022-03-30 12:17:18






Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: