6 Stimmen

Busfehler beim Versuch, auf ein Zeichen in einer Zeichenfolge in C zuzugreifen

Ich habe diese Codezeile viele Male verwendet (Update: wenn String ein Parameter für die Funktion war!), aber wenn ich versuche, es jetzt zu tun, erhalte ich einen Bus-Fehler (sowohl mit gcc und Clang). Ich reproduziere den einfachsten möglichen Code;

char *string = "this is a string";
char *p = string;
p++;
*p='x'; //this line will cause the Bus error
printf("string is %s\n",string);

Warum kann ich das zweite Zeichen der Zeichenkette nicht mit dem p-Zeiger ändern?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X