Delphi-Help

FreeMem

Печать
Рейтинг пользователей: / 0
ХудшийЛучший 

FreeMem

Описание

procedure FreeMem ( MemoryPointer : Pointer {; MemorySize : Integer} ) ;

Процедура FreeMem освобождает память, используемую переменной MemoryPointer.
Вы можете произвольно определить MemorySize, который будет освобожден. Однако, Вы должны определить размер, распределенный на первом месте.
Если переменная является нулевой (nil), тогда ничто не происходит.
Если переменная неправильно указывает на память (возможно она уже была освобождена), то выбрасывается исключение EInvalidPointer.
Если память содержит ссылки на переменные основанные на памяти, то вы должны вызвать Finalize перед FreeMem.
FreeMem - противоположная GetMem команда.
Лучше использовать New и Dispose вместо GetMem и FreeMem. Они позволяет избегать потребность вызова Finalize.

Пример кода

var
charPtr  : PChar;
begin
// Распределение памяти для 4-х символов
GetMem(charPtr, 4 * SizeOf(Char));
// Присвоение им значений
charPtr^ := 'A';
Inc(charPtr);
charPtr^ := 'B';
Inc(charPtr);
charPtr^ := 'C';
Inc(charPtr);
charPtr^ := #0;  // признак конца строки
// Теперь показываем эти значения
Dec(charPtr, 3);
ShowMessage('Сохраненные символы = '+charPtr);
// Теперь освобождаем память этих символов
FreeMem(charPtr);
end;

Сохраненные символы = ABC

Примечание

Авторизация



Счетчики