Разное
Облака / Clouds
The bast cloud service
Get 20 GB free!!!
Support WebDav.
Show more >>
time-tested cloud storage
Support WebDav.
Последние книги
Самое популярное
Все бесплатно
Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.
Навигация
Вопросы
Изменить пароль для Paradox
Категория: Базы данных
Категория: Базы данных
Создание цветных строк в ListBox
Категория: Компоненты
Категория: Компоненты
Undo в memo
Категория: Компоненты
Категория: Компоненты
Компонент StatusBar
Категория: Компоненты
Категория: Компоненты
Быстрое копирование файлов
Категория: Файловая система
Категория: Файловая система
Компоненты Panel, GroupBox, Bevel, ScrollBox, Splitter
Категория: Компоненты
Категория: Компоненты
Подсветить часть текста в DBGrid
Категория: Компоненты
Категория: Компоненты
Округление времени до 5 мин
Категория: Базы данных
Категория: Базы данных
Создание ярлыка на Рабочем столе
Категория: Приложение
Категория: Приложение
Удалить или оставить симолы
Категория: Текст и строки
Категория: Текст и строки
Delphi - Справочник: GetMem
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 и манипуляции указателем. |