* temp ist als Zeiger auf eine Konstante definiert (manchmal auch als String-Literal bezeichnet - besonders in anderen Sprachen).
Daher versucht die Zeile mit dem Fehler das dritte Zeichen dieser Konstante zu ändern.
Versuchen Sie, ein char-Array zu definieren und verwenden Sie strcpy, um temp in dieses Array zu kopieren. Dann mache den obigen Code auf dem Array, es sollte funktionieren. (Entschuldigung, mein iPad hier möchte keinen Code in die SO-Schnittstelle einfügen)
Wie Sie sehen können, ist temp
ein Zeiger, der auf eine zufällige Adresse zeigt, wo sich das namenlose Array mit dem Wert Paras
befindet. Und dieses Array ist eine String-Konstante.
Damit Ihr Programm funktioniert, müssen Sie anstelle eines Zeigers ein Array verwenden:
%Vor% Wenn Sie sich jetzt fragen, warum es temp[6]
statt temp[5]
ist, initialisiert der obige Code eine Zeichenfolge und unterscheidet sich grundlegend von:
Strings werden mit einem Null-Terminator %code%
beendet. Und die String-Initialisierung wird wie folgt aussehen:
Tags und Links c const segmentation-fault