Schreibzugriff auf Array nicht möglich
-
int main() { char* string = "Anna"; string[0]='a'; return 0; }
Ganz kurz und knapp:
Warum geht das nicht?Bekomme keine Warnings, einfach nur eine Absturzmeldung von Windows.
Benutze GNU GCC Compiler wenn es etwas damit zu tun hat.Mit freundlichen Grüßen,
Thez€dit: char string[] = 'Anna'; behebt den Fehler. Warum?
-
Schalte mal die Warnung an. Du hast einen Zeiger auf einen c-string, der wahrscheinlich in einem r/o-Speicherbereich liegt. Greifst du dann schreibend drauf zu, gibts halt ein Problem...
Du kannst das Problem lösen, indem du den String in einen schreibbaren Bereich kopierst, z.B.char str[] = "abcdef"; //Weist den Compiler an, ein Array[7] anzulegen mit dem String als Inhalt str[0] = 's';
-
D.h. wenn ich sowas mache wie char* string = "Bla",
dann gibt es keine implizite Speicherallokierung?
-
char* string = "Anna";
ist ein const char* string = "Anna"; nach C11 Standard
D.h. wenn ich sowas mache wie char* string = "Bla",
dann gibt es keine implizite Speicherallokierung?nein - nie
-
Alles klar, danke! War mein erstes mal mit C-Strings