string n = NULL;
cout << "blah: " << n << " foo!" << endl; // never printed
cout << "BLAH" << endl; // never printed
cerr << "FOO" << endl; // never printed
Ich verstehe das Zuweisen oder Anhängen von etwas an NULL ist nicht richtig. Aber still sterben ist auch nicht gut. Wie soll ich mit diesen Situationen umgehen/debuggen? Und warum stirbt das Programm?Warum wird mein C++ - Programm automatisch beendet, wenn ein NULL-Objekt verwendet wird?
Wie Sie [hier] sehen (http://www.cplusplus.com/reference/string/string/string/), Die Initialisierung eines Strings mit einem Null-Ptr führt zu _undefined behaviour_ – norisknofun
Ein 'std :: string'-Objekt, wenn der Standard-Konstruktor (wie in' std :: string n; ') leer ist. Wenn Sie eine leere Zeichenfolge wünschen, müssen Sie nur das Objekt erstellen, es muss keine spezielle oder explizite Initialisierung vorgenommen werden. –
@NathanOliver Das Problem ist nicht, dass NULL ein Zeiger ist. Es ist, dass es der Nullzeiger ist. – juanchopanza