Core Foundation   >   CFAllocatorReallocate(_:_:_:_:)
関数
CFAllocatorReallocate(_:_:_:_:)
指定されたアロケータを使用してメモリを再割り当てします。
宣言
パラメータ
allocator | メモリの再割り当てに使用するアロケータ。デフォルトのアロケータを要求するには、NULL を渡します。 |
ptr | 新しいサイズに再割り当てするメモリブロックへの型のないポインタ。ptr が NULL で newsize が 0 より大きい場合は、メモリが割り当てられます (アロケータ のコンテキストの allocate 呼び出し関数を使用して)。ptr が NULL で newsize が 0 の場合、結果は NULL になります。 |
newsize | 割り当てるべきバイト数。割り当てるバイト数。0 を渡し、ptr パラメータが NULL でない場合、ptr が指し示すメモリブロックは通常、割り当てが解除されます。このパラメータに 0 を渡し、ptr パラメータが NULL の場合は何も起きず、返される結果は NULL です。 |
hint | CFOptionsFlags 型のビットフィールド。メモリの割り当て方法を示すフラグをアロケータに渡します。ゼロはヒントがないことを示します。ヒントは現在定義されていませんので、この引数には 0 だけを渡して下さい。 |
議論
CFAllocatorReallocate 関数の主な目的は、メモリブロックを新しい (通常はより大きい) サイズに再割り当てすることです。ただし、特定のパラメータで渡された値に基づいて、この関数はまたメモリをあらかじめ割り当てたり、与えられたメモリブロックの割り当てを解除したりすることもできます。以下に、意味の組み合わせをまとめます。
- ptr パラメーターが NULL でなく、newsize パラメーターが 0 より大きい場合、再割り当ての動作をします。
- pt rパラメータが NULL で、newsize パラメータが 0 より大きい場合、割り当てる動作をします。
- ptr パラメータが NULL でなく、newsize パラメータが 0 の場合、割り当て解除の動作をします。
CFAllocatorReallocate 関数の結果は、メモリブロックへの型のないポインタまたは NULL のいずれかです。NULL の結果は、メモリの割り当て失敗またはその他の結果のいずれかを示し、その正確な解釈は、特定のパラメータの値と、アロケータコンテキスト内の呼び出し関数の有無によって決まります。要約すると、NULL の結果は以下のいずれかを意味します。
- 不足している空き領域など、メモリを割り当てようとしてエラーが発生しました。
- 呼び出し関数の allocate、reallocate、または deallocate が、(パラメータによっては) アロケータコンテキスト内で定義されていません。
- 意味の操作は "割り当て解除" です (つまり、何も返す必要はありません)。
- ptr パラメータは NULL であり、要求されたサイズは 0 です。