Feedback

C++ - placement new

Veröffentlicht von am 3/27/2008
(2 Bewertungen)
Demonstriet die Verwendung von placement new

Mit new(buf) string("hi") wird kein neuer Speicher reserviert, sondern der bereits reservierte Speicher, auf den buf zeigt, verwendet.

Weitere Informationen unter: http://www.devx.com/tips/Tip/12582
char * buf = new char [1000]; // pre - allocated buffer
string *p = new ( buf ) string ("hi" ); // placement new
string *q = new string ("hi" ); // ordinary heap allocation
Abgelegt unter new.

5 Kommentare zum Snippet

Rainer Schuster schrieb am 4/1/2008:
was soll das darstellen? also so ganz ohne erklärung kann ich als versierter C++ Anwender mit 7 Jahren erfahrung so rein gar nichts anfangen. Und ich denke ein Anfänger kann damit auch nicht viel anfangen.
Tim Hartwig schrieb am 4/2/2008:
Es soll nur kompliziert aussehen :P
General Bison schrieb am 4/4/2008:
aber was tut es?
Vertexwahn schrieb am 4/6/2008:
Es soll C++ Programmierer mit 7 Jahren Erfahrungen, die placement new nicht kennen, schockieren ;)

Mit new(buf) string("hi") wird kein neuer Speicher reserviert, sondern der bereits reservierte Speicher, auf den buf zeigt, verwendet.
Rainer Schuster schrieb am 4/7/2008:
mir gings nicht darum, was placement new ist. das weiß ich schon (und wenn ich es nicht weiß, dann gibts da noch google) Aber hier wollen die Leute Lösungen sehen und deshalb wäre eine erklärung schön. Der Code hier sieht ja mal genau so aus ;-) und sogar noch mit Erklärung. http://www.devx.com/tips/Tip/12582
 

Logge dich ein, um hier zu kommentieren!

Ähnliche Snippets