SysGetMem, функция

Синтаксис


function SysGetMem(Size:  Integer):  Pointer;

Описание

Функция SysGetMern выделяет Size байт с помощью встроенного менеджера памяти Delphi. Функция возвращает указатель на выделенную память или nil в случае ошибки. Инициализация памяти не выполняется.
SysGetMem - настоящая функция.

Ошибки

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

  • При создании собственного менеджера памяти функция SysGetMem может применяться для выделения памяти.
  • Если вы не разрабатываете собственный менеджер памяти, вызывайте для выделения памяти процедуры New или GetMem, а не функцию SysGetMem.

Пример


// Пояснения по этому менеджеру памяти приведены в описании процедуры
// SetMemoryManager.
// Выделяет Size байт и возвращает указатель на новый участок
// памяти, В случзе ошибки возвращает nil и генерирует
// исключительную ситуацию. Выделяет дополнительные байты для
// отладочных целей.
function DebugGet(Size: Integer): Pointer;
var
  PArray: PIntegerArray;
begin
  Size :=RoundUpSize(Size);
  // Выделяет память с учетом двух защитных слов: в начале и в
  // конце блока.
  PArray := SysGetMem(Size + 2*GuardSize);
  if PArray = nil then
    Result := nil
  else
  begin
    // Запись защитных слов.
    PArray[0] := AllocatedGuard;
    PArray[Size div GuardSize + 1] := AllocatedGuard;
    // Возвращает указатель на память за первым защитным словом.
    Result := @PArray[1];
  end;
end;

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

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




Нет комментариев.



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