Облака / Clouds
    Go to Copy.com
    Copy.com
    The bast cloud service
    Get 20 GB free!!!
    Support WebDav.
    Show more >>

    Go to Dropbox.com
    Dropbox.com
    time-tested cloud storage
    Support WebDav.
Все бесплатно
    Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.



Вопросы
  Изменить пароль для Paradox
   Категория: Базы данных
  Создание цветных строк в ListBox
   Категория: Компоненты
  Undo в memo
   Категория: Компоненты
  Компонент StatusBar
   Категория: Компоненты
  Быстрое копирование файлов
   Категория: Файловая система
  Компоненты Panel, GroupBox, Bevel, ScrollBox, Splitter
   Категория: Компоненты
  Подсветить часть текста в DBGrid
   Категория: Компоненты
  Округление времени до 5 мин
   Категория: Базы данных
  Создание ярлыка на Рабочем столе
   Категория: Приложение
  Удалить или оставить симолы
   Категория: Текст и строки

Delphi - Справочник: GetMem

ABCDEFGHIJKLMNOPQRSTUVWXYZ

  << Вернуться  

 GetMem
function GetMem ( var StoragePointer : Pointer; StorageSize : Integer ) ;
Функция (Unit System)
Получает указанное число байтов памяти.
Описание:
Процедура GetMem пытается получить указанные в StorageSize байт памяти, сохраняя указатель на память в StoragePointer. Если при распределении произошли сбои, то вызывается исключение EOutOfMemory. Память не всегда инициализируется.
Пример кода: Получение памяти для 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
Примечание:
Процедура GetMem потоко безопасна, пока IsMultiThread истинено. Для распределения памяти для записей лучше использовать New - пример используется для иллюстрации GetMem и манипуляции указателем.

  << Вернуться