C ++ размещение нового

Извините, если этот вопрос покажется глупым, но я только начинаю изучать C ++, и что-то меня смущает в размещении нового

Я читал C ++ Primer (который я считаю очень хорошей книгой для изучения C ++), и в новом разделе по размещению приведен пример. В примере используется массив char для предоставления места в памяти для размещения новых

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

Мой вопрос: почему он использует массив символов для предоставления места в памяти для размещения новых? Кроме того, последняя строка в приведенном выше коде выделяет память для массива double, как это возможно, если исходное пространство памяти содержит массив char? Если для размещения new используется пространство памяти массива char, означает ли это, что когда мы выделяем двойной массив, он перезаписывает массив char в этой памяти?

Снова извините, если вопрос странный, но надеюсь, я прояснил это.

Ответы на вопрос(5)

Ваш ответ на вопрос