Object an einer bestimmten Adresse erstellen (ohne new...)
-
Hallo,
Kann man ein Object an einer bestimmten Adresse erstellen?
Ich meine, wenn man mit new() ein Object erstellt, dann wird
einem ja die Adresse zugewiesen.Da ich aber mit Shared-Memory arbeite, hab ich mir am Anfang
Platz für das Object geschafft. Nun hab ich ein Zeiger auf den
Platz für das Object.
Aber wie krieg ich das Object da rein?
(Sprich, ich will den Konstruktor aufrufen)Die dirty Methode erst ein normales Object zu erstellen und
dann an die bestimmte Adresse zu kopieren funzt natürlich,
würde es aber lieber ohne machen...Wenn ihr mein Problem versteht, könntet ihr mir ja vielleicht
helfenGruss & danke!
Stef
-
placement new ist das was du suchst
-
Mit placement new:
void *a; // Zeiger auf freien Speicher
X *x = new (a) X(); // Plaziert Objekt nach a, ruft Konstruktor auf...
x->~X(); // Ruft Destruktor auf ohne a zu loeschen
-
Ich danke euch
Klappt super!!