System.TMemoryManager
Delphi
TMemoryManager = record
GetMem: function(Size: NativeInt): Pointer;
FreeMem: function(P: Pointer): Integer;
ReallocMem: function(P: Pointer; Size: NativeInt): Pointer;
end deprecated 'Use TMemoryManagerEx';
C++
struct DECLSPEC_DRECORD TMemoryManager _DEPRECATED_ATTRIBUTE1("Use TMemoryManagerEx")
{
public:
void * __fastcall (*GetMem)(NativeInt Size);
int __fastcall (*FreeMem)(void * P);
void * __fastcall (*ReallocMem)(void * P, NativeInt Size);
};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
record struct |
public | System.pas System.hpp |
System | System |
説明
警告: TMemoryManager は非推奨になっています。 TMemoryManagerEx を使用してください。
TMemoryManager は、メモリ ブロックのエントリ ポイントを表します。
TMemoryManager 型は、GetMemoryManager プロシージャと SetMemoryManager プロシージャによって使用されます。この型は、メモリの割り当てや解放を行うルーチンを表します。
GetMem フィールド(Delphi)または GetMem メソッド(C++)には、与えられたバイト数を割り当てて、新規に割り当てられたメモリ ブロックへのポインタを返す関数を定義する必要があります。この関数は、GetMemory ルーチンによって呼び出されます。
GetMem 関数に渡される Size パラメータは、0 になることはありません。GetMem 関数は、与えられたサイズのメモリ ブロックを割り当てることができない場合は、nil(Delphi)または NULL(C++)を返さなければなりません。
FreeMem フィールド(Delphi)または FreeMem メソッド(C++)には、与えられたメモリ ブロックを解放する関数を定義する必要があります。 FreeMem 関数に渡されるポインタ パラメータは、nil(Delphi)または NULL(C++)になることはありません。FreeMem 関数は、与えられたメモリを正常に解放できた場合は、0 を返さなければなりません。それ以外の場合は、0 以外の値を返さなければなりません。これは、FreeMemory ルーチンによって呼び出されます。
ReallocMem フィールド(Delphi)または ReallocMem メソッド(C++)には、与えられたメモリ ブロックを、新しいサイズに再割り当てする関数を定義する必要があります。 ReallocMem 関数に渡されるポインタ パラメータは、nil(Delphi)または NULL(C++)になることはありません。また、Size パラメータは 0 になることはありません。ReallocMem 関数は、与えられたメモリ ブロックを新しいサイズに再割り当てしなければなりません。与えられたメモリ ブロックのサイズを変更できない場合は、メモリ ブロックを移動する場合もあります。メモリ ブロックの既存の内容はすべて維持する必要があります。ただし、新たに割り当てられた領域は初期化しなくてもかまいません。ReallocMem 関数は、再割り当てされたメモリ ブロックへのポインタを返さなければなりません。再割り当てができなかった場合は、nil (Delphi)または NULL(C++)を返さなければなりません。 これは、ReallocMem ルーチンによって呼び出されます。