Справочник функций и процедур Delphi: GetMem

  Навигация по первой букве:

A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z

  Навигация по категории:

Compiler directives, Directives, Keywords / Types, Variables, Constants / Functions, Procedures

  Реклама:

|  вакансии и работа программисту php java python ruby  |

GetMem
Функция
Получает указанное число байтов памяти. System unit
  function GetMem ( var StoragePointer : Pointer; StorageSize : Integer ) ;

Google  
 
Описание
Процедура GetMem пытается получить указанные в StorageSize байт памяти, сохраняя указатель на память в StoragePointer. Если при распределении произошли сбои, то вызывается исключение EOutOfMemory. Память не всегда инициализируется.
Примечания
Процедура GetMem потоко безопасна, пока IsMultiThread истинено. Для распределения памяти для записей лучше использовать New - пример используется для иллюстрации GetMem и манипуляции указателем.
Похожие команды
Dispose  Очищает память на которую указывает указатель

FillChar  Заполняет раздел памяти значением байта или символа-заполнителя

FreeMem  Освобождает память, используемую переменной

New  Создаёт новую переменную типа указатель

ReallocMem  Позволяет изменить размер существующего блока памяти

 
Пример кода : Получение памяти для 3-х записей, и использование этой памяти
type
  TRecord = Record
    name : string[10];
    age  : Byte;
  end;

var
  recPointer : ^TRecord;

begin
  // Распределение памяти для трех записей
  // Обратить внимание: для этого лучше использовать New
  // Он здесь используется только в целей иллюстрации
  GetMem(recPointer, 3 * SizeOf(TRecord));

  // Заполнение этих 3-х записей значениями
  recPointer.name := 'Brian';
  recPointer.age  := 23;

  Inc(recPointer);
  recPointer.name := 'Jim';
  recPointer.age  := 55;

  Inc(recPointer);
  recPointer.name := 'Sally';
  recPointer.age  := 38;

  // Теперь показываем эти значения
  Dec(recPointer, 2);
  ShowMessageFmt('%s - %d',[recPointer.name, recPointer.age]);
  Inc(recPointer);
  ShowMessageFmt('%s - %d',[recPointer.name, recPointer.age]);
  Inc(recPointer);
  ShowMessageFmt('%s - %d',[recPointer.name, recPointer.age]);
end;
Brian - 23
Jim - 55
Sally - 38
 


Copyright © 2004-2016 Delphi Sources (источник – "DelphiBasics.ru")
 


Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook