Posicionamento de C ++ novo

Desculpe se esta pergunta vai parecer estúpida, mas eu estou apenas começando a aprender C ++ e há algo me confundindo sobre o novo posicionamento

Eu tenho lido o C ++ Primer (que eu acho que é um ótimo livro para aprender C ++), e na seção new placement há um exemplo dado. O exemplo usa uma matriz char para fornecer espaço de memória para o novo posicionamento

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

Minha pergunta é por que está usando uma matriz de caracteres para fornecer espaço de memória para o posicionamento novo? Além disso, a última linha no código acima está alocando memória para uma matriz de double, como isso é possível quando o espaço de memória original contém uma matriz char? Se o posicionamento novo estiver usando o espaço de memória da matriz char, isso significa quando alocamos a matriz dupla sobrescreve a matriz char nessa memória?

Mais uma vez desculpe se a pergunta é estranha, mas espero ter deixado bem claro.

questionAnswers(5)

yourAnswerToTheQuestion