CString und das Nicht-Kopier-Problem
-
Hi!
Mich nervt hier mal wieder ein Problem mit der CString-Klasse. Die Klasse meint
ja bei Zuweisungen den String nicht kopieren zu müssen, sondern sich intern
einfach den Pointer auf den String zu merken.Das führt natürlich zu Exceptions, wenn ich den alten String lösche....
Wie kann ich dieses Problem umgehen und CString sagen, dass es den String
kopieren soll??Nur noch mal zum Verständis, es geht um folgendes:
CString a("Hallo"); CString b; b = a; // Hier gehts los: Hallo wird nicht in b kopiert // sondern b enthält nur einen Pointer auf den // String aus aWenn a jetzt gelöscht wird, ist alles im A****. ^^ In diesem Fall tritt das
Problem natürlich nicht auf, aber wenn ich die Strings Funktionen übergebe...Würde mich über eine Lösung freuen...
-
Ne, das ist quark. Das verwendet intern Referenzcounting. D.h., wenn du einen der Strings löschst, wird der Inhalt nur gelöscht, wenn der Zähler auf 0 ist. Du machst irgendwo anders nen Fehler.
-
Zeig mal ein Bsp wo sowas passiert.