Podemos utilizar la ubicación nueva para crear un objeto en la memoria preasignada.Crear objetos en la memoria preasignada
Consideremos el siguiente ejemplo:
char *buf = new char[1000]; //pre-allocated buffer
string *p = new (buf) MyObject(); //placement new
string *q = new (buf) MyObject(); //placement new
He creado dos objetos en el búfer preasignado. ¿Los dos objetos se crean aleatoriamente dentro del búfer o se crean en bloques de memoria contiguos? Si seguimos creando más objetos en el búfer y queremos que se almacenen en bloques de memoria contiguos, ¿qué deberíamos hacer? Primero crea una matriz en el búfer y luego crea cada objeto en las ranuras del elemento de la matriz.
"Si seguimos creando más objetos en el búfer y queremos que se almacenen en bloques de memoria contiguos, ¿qué deberíamos hacer?" Use 'std :: vector', es una matriz dinámica almacenada contiguamente. – GManNickG