Possiamo usare il posizionamento nuovo per creare un oggetto nella memoria pre-allocata.Creare oggetti nella memoria pre-allocata
Consideriamo il seguente esempio:
char *buf = new char[1000]; //pre-allocated buffer
string *p = new (buf) MyObject(); //placement new
string *q = new (buf) MyObject(); //placement new
Ho creato due oggetti nel buffer di pre-assegnati. I due oggetti vengono creati casualmente nel buffer o creati in blocchi di memoria contigui? Se continuiamo a creare più oggetti nel buffer e vogliamo che vengano memorizzati in blocchi di memoria contigui, cosa dovremmo fare? Creare prima una matrice nel buffer e poi creare ogni oggetto negli slot di elemento dell'array?
"Se continuiamo a creare più oggetti nel buffer e vogliamo che vengano archiviati in blocchi di memoria contigui, cosa dovremmo fare?" Usa 'std :: vector', è un array dinamico memorizzato contiguo. – GManNickG