アロケータ


Core Foundation が抽象化するオペレーティングシステムサービスの中には、メモリ割り当てがあります。この目的のためにアロケータ(allocators、割り当て機能) を使用します。


アロケータは、メモリを割り当てたり割り当てを解除する不透明オブジェクトです。Core Foundation オブジェクトのメモリを直接割り当てたり、再割り当てたり、または割り当てを解除する必要は決してありません。オブジェクトを作成する関数にアロケータを渡して下さい。これらの関数には、名前に "Create" が埋め込まれています (例えば CFStringCreateWithPascalString など)。作成関数は、アロケータを使用して、作成するオブジェクトのメモリを割り当て(allocate)ます。


アロケータは、オブジェクトの寿命を通じてオブジェクトと関連付けられます。メモリの再割り当てが必要な場合、オブジェクトはその目的のためにアロケータを使用し、オブジェクトの割り当てを解除する必要がある場合、アロケータはオブジェクトの割り当て解除に使用されます。アロケータは、もともと作成されたオブジェクトが必要とするオブジェクトを作成するためにも使用されます。いくつかの関数は、一時的なバッファのメモリを解放するなど、特別な目的のためにアロケータに渡すこともできます。


Core Foundation では、独自のカスタムアロケータを作成できます。また、Core Foundation はシステム・アロケータを提供し、このアロケータを最初に現在のスレッドのデフォルト・アロケータに設定します。(スレッドごとにデフォルトのアロケータが 1 つあります) カスタムアロケータをコードの任意の時点のスレッドのデフォルトに設定できます。しかし、システム・アロケータは、ほとんどすべての状況で十分な、適切な汎用アロケータです。カスタムアロケータは、Mac OS 9 の特定の状況やパフォーマンスが問題になる場合のバルクアロケータなどの特殊な場合に必要になる場合があります。これらのまれな場合を除いて、カスタムアロケータを使用しないでください。また、特にライブラリの場合はデフォルトとして設定しないでください。


アロケータの詳細、およびカスタムアロケータの作成に関する詳細は、カスタムアロケータの作成 を参照してください。


前の章 次の章



目次
Xcode の新機能

  • 序文
  • この文書の構成
    以下も見よ
  • アロケータ
  • 所有権ポリシー
  • 基礎
    命名規則
    作成規則
    取得規則
    インスタンス変数と渡すパラメータ
    所有権の例
  • Core Foundation オブジェクトの寿命管理
  • オブジェクト参照の保持
    オブジェクト参照の解放
    オブジェクト参照のコピー
    オブジェクト保持カウントの決定
  • Copy 関数
  • 浅いコピー
    深いコピー
  • バイト順
  • 作成関数でのアロケータの使用
  • アロケータコンテキストの使用
  • カスタムアロケータの作成
  • アロケータ呼び出し関数の実装
  • バイトスワップ
  • 整数のバイトスワップ
    浮動小数点値のバイトスワップ
  • 文書改訂履歴












  • トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)