| 
| Описание |  | Delphi процедура ReallocMem изменяет размер памяти существующего блока хранения. 
 Размер может быть меньшим или больше.
 
 Если меньше, тогда существующий размер памяти будет уменьшен на разность существующего размера к необходимому.
 
 Если больше, тогда размер памяти будет расширен. Или будет создан новый блок памяти, если это необходимо. В любом случае, блочные данные существующей памяти сохранены, и новая часть памяти инициализирована.
 |  |  |  | Примечания |  | Предупреждение: используйте с предосторожностью - чрезмерное использование может фрагментировать память. |  |  |  | Похожие команды |  | 
Dispose  Очищает память на которую указывает указатель
 FreeMem  Освобождает память, используемую переменной
 
 GetMem  Получает указанное число байтов памяти.
 
 New  Создаёт новую переменную типа указатель
 
 
 |  |  | 
| Пример кода : Распределение используя 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
 
 |  |