Мы можем использовать новое размещение для создания объекта в предварительно выделенной памяти.
Давайте рассмотрим следующий пример:
char *buf = new char[1000]; //pre-allocated buffer
string *p = new (buf) MyObject(); //placement new
string *q = new (buf) MyObject(); //placement new
Я создал два объекта в предварительно выделенном буфере. Два объекта создаются случайным образом в буфере или в непрерывных блоках памяти? Если мы продолжаем создавать больше объектов в буфере и хотим, чтобы они хранились в непрерывных блоках памяти, что нам делать? Сначала создайте массив в буфере, а затем создайте каждый объект в слотах элементов массива?