Облака / 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.
Все бесплатно
    Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.



Вопросы
  Объект экрана — Screen
   Категория: Компоненты
  Шифрование текста по паролю
   Категория: Текст и строки
  Удалить лишние символы из строки
   Категория: Текст и строки
  Что значит Paramstr
   Категория: Приложение
  Компонент HotKey
   Категория: Компоненты
  Как поместить графический элемент в ListBox
   Категория: Компоненты
  Вставить иконки в Grid
   Категория: Компоненты
  Показать удаленные записи в DBase
   Категория: Базы данных
  Получить имена всех папок и файлов в директории
   Категория: Файловая система

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

ABCDEFGHIJKLMNOPQRSTUVWXYZ

  << Вернуться  

 ReallocMem
procedure ReallocMem ( var StoragePointer : Pointer; StorageSize : Integer ) ;
Процедура (Unit System)
Позволяет изменить размер существующего блока памяти
Описание:
Delphi процедура ReallocMem изменяет размер памяти существующего блока хранения.

Размер может быть меньшим или больше.

Если меньше, тогда существующий размер памяти будет уменьшен на разность существующего размера к необходимому.

Если больше, тогда размер памяти будет расширен. Или будет создан новый блок памяти, если это необходимо. В любом случае, блочные данные существующей памяти сохранены, и новая часть памяти инициализирована.
Пример кода: Распределение используя GetMem, и затем перераспределение используя ReallocMem

type TRecord = Record name : string[10]; age : Byte; end; var recPointer : ^TRecord; begin // Распределите память для 2 записей // Обратите внимание: для этого лучше использовать New // Здесь используется только в целях иллюстрации GetMem(recPointer, 2 * SizeOf(TRecord)); // Заполнение значениями этих 2-х записей recPointer.name := 'Brian'; recPointer.age := 23; Inc(recPointer); recPointer.name := 'Jim'; recPointer.age := 55; // Ууупс - забыли добавить Sally... Dec(recPointer); ReallocMem(recPointer, 3 * SizeOf(TRecord)); // Теперь добавляем 3-ю запись Inc(recPointer,2); 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
Примечание:
Предупреждение: используйте с предосторожностью - чрезмерное использование может фрагментировать память.

  << Вернуться