C ++ - Platzierung neu

Es tut mir leid, wenn diese Frage sich dumm anhört, aber ich fange gerade an, C ++ zu lernen, und etwas verwirrt mich an der neuen Platzierung

Ich habe C ++ Primer gelesen (was meiner Meinung nach ein sehr gutes Buch zum Erlernen von C ++ ist), und im Abschnitt "Placement New" ist ein Beispiel angegeben. In diesem Beispiel wird ein char-Array verwendet, um Speicherplatz für die Platzierung new bereitzustellen

const int BUF = 512;
const int N = 5;
char buffer[BUF];
double * pd1;
pd1 = new (buffer) double[N];

Meine Frage ist, warum es ein Char-Array verwendet, um Speicherplatz für die Platzierung neu bereitzustellen? Auch die letzte Zeile im obigen Code ist die Zuweisung von Speicher für ein Array von double. Wie ist das möglich, wenn der ursprüngliche Speicherbereich ein char-Array enthält? Wenn die neue Platzierung den Speicherplatz des Char-Arrays belegt, bedeutet dies, dass beim Zuweisen des Double-Arrays das Char-Array in diesem Speicher überschrieben wird?

Nochmals, tut mir leid, wenn die Frage seltsam ist, aber ich hoffe, ich habe es ganz klar gemacht.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage