オブジェクトをメモリ内の特定のアドレスに作成する必要がある状況があるかどうか。どこで必要になる可能性がありますか(例)?
ありがとうございました。
C++ アプリケーションで、特定のアドレスにオブジェクトを構築する必要があるかどうかを尋ねているようです。
通常、いいえ。ただし、例外があり、C++ 言語はそれをサポートしています。
そのような例外の 1 つは、頻繁な小さな割り当てを避けるために、小さなオブジェクト用の一種のキャッシュ システムを構築する場合です。最初に大きなバッファを構築し、次にクライアント コードが新しい小さなオブジェクトを構築したい場合、キャッシング システムはこの大きなバッファ内にそれを構築します。
プレースメント new を見てみましょう: " "placement new" にはどのような用途がありますか? "
良い例は、独自のメモリ アロケータ、ガベージ コレクタを作成すること、またはキャッシュ パフォーマンスのためにメモリを正確にレイアウトしようとすることです。
それはニッチなことですが、時には非常に便利です。
C++ では、プール アロケータを実装するときに、特定のアドレスにオブジェクトを作成する必要がある場合があります。たとえば、Boost プール: http://www.boost.org/doc/libs/1_47_0/libs/pool/doc/index.html