SetMemoryManager, процедураСинтаксисprocedure SetMemoryManager(const NewMgr: TMemoryManager); Описание
Процедура SetMemoryManager устанавливает новый менеджер памяти для обработки
запросов на выделение памяти от процедур GetMem,
New, операций создания объектов и других данных,
включая длинные строки, динамические массивы и значения типа Variant.
SetMemoryManager - настоящая процедура. ОшибкиСоветы и приемы
Пример// Отладочный менеджер памяти выделяет защитное слово вокруг // каждого выделяемого участка памяти, Если защитное слово затирается, // у вас возникли проблемы. Выделяемые и свободные блоки используют // разные значения защитных слов для проверки на двойное освобождение. // Когда блок освобождается, его содержимое переписывается с помощью // FreeFill, что помогает отслеживать ошибки при обращении к // освобожденному блоку. const AllocatedGuard = $0AC0ACDC; FreeGuard = $0FC0FCEE; FreeFill = $42FE; GuardSize = SizeOf(LongInt); MaxArraySize = MaxInt div 4 - 1; type TIntegerArray = array[0..MaxArraySize] of LongInt; PIntegerArray = ^TIntegerArray; // Округление Size до значения, кратного размеру защитного // слова function RoundUpSize(Size: Integer): Integer; begin Result := (Size + GuardSize - 1) div GuardSize * GuardSize end; procedure SetDebugManager; var Mgr: TMemoryManager; begin Mgr.GetMem := DebugGet; Mgr.FreeMem := DebugFree; Mgr.ReallocMem := DebugRealloc; SetMemoryManager(Mgr); end; Смотрите такжеФункции FreeMemory, GetMemory, IsMemoryManagerSet, ReallocMernory, SysFreeMem, SysGetMem, SysReallocMem, процедура GetMemoryManager.Учебник по языку Pascal Лабораторные работы по программированию Справочник
|