Char Pointer
-
Hallo, ich würde gerne wissen, was bei einem solchen Funktionsaufruf passieren kann:
void setString( char* s) { s = "constant value"; }
Insbesondere bin ich daran interessiert, was mit der Speicherregion des Strings passiert. Wird diese nach Aufruf der Funktion ungültig?
-
Es passiert überhaupt nichts, du änderst den bedeutungslosen Wert einer lokalen Variablen.
Wenn du so weit bist, dass es dir gelingt, einen Zeiger auf ein vermeintlich lokales Stringliteral aus einer Funktion heraus zu bekommen: Auch kein Problem; Stringliterale haben sogenannte statische Lebensdauer, d.h. sie funktionieren immer und überall.