System.TMemoryManager

提供: RAD Studio API Documentation
移動先: 案内検索

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 ルーチンによって呼び出されます。

関連項目