Feedback

C++ - placement new

Veröffentlicht von am 27.03.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 01.04.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 02.04.2008:
Es soll nur kompliziert aussehen :P
General Bison schrieb am 04.04.2008:
aber was tut es?
Vertexwahn schrieb am 06.04.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 07.04.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