プレースメントメモリにオブジェクトを作成するには、プレースメントnewを使用できます。私は事前に割り当てられたバッファに2つのオブジェクトを作成しました事前割り当てメモリにオブジェクトを作成する
char *buf = new char[1000]; //pre-allocated buffer
string *p = new (buf) MyObject(); //placement new
string *q = new (buf) MyObject(); //placement new
:
はのは、次の例を考えてみましょう。 2つのオブジェクトは、バッファ内でランダムに作成されるか、または連続したメモリブロックで作成されますか?バッファ内にさらにオブジェクトを作成して連続したメモリブロックに格納したい場合、どうすればよいでしょうか?まずバッファに配列を作成し、配列の要素スロットに各オブジェクトを作成しますか?
"バッファにさらにオブジェクトを作成して、それらを連続したメモリブロックに格納したい場合、どうすればよいですか?" 'std :: vector'を使うと、それは連続的に格納された動的配列です。 – GManNickG