C Anhängen von char zu char*

So, ich bin versucht, anfügen einer char zu einem char*.

Ich habe zum Beispiel char *word = " ";
Ich habe auch char ch = 'x';

Ich tun append(word, ch); Mit dieser Methode..

void append(char* s, char c)
{

    int len = strlen(s);
    s[len] = c;
    s[len+1] = '\0';
}

Gibt er mir "segmentation fault", und ich verstehe, warum nehme ich an. Da s[len] ist out of bounds. Wie kann ich machen, damit es funktioniert? Ich muss klar die char* eine Menge als auch, wenn ich so etwas wie char Wort[500]; Wie würde ich es klar, dass, wenn es hat einige Zeichen angehängt? Würde die strlen es immer 500? Vielen Dank im Voraus.

  • "Weil s[len] ist out of bounds." <- Sehr gut erkannt für einen Anfänger!!! Herzlichen Glückwunsch. Jedoch, Sie haben noch eine andere Fehler - ein string-literal ist readonly, kann man nicht ändern, seinen Inhalt.
  • s[len + 1] ist out of bounds. s[len] ist das null-byte, die nicht gezählt strlen.
  • yep, technisch Recht. Ich sollte geschrieben haben sizeof(s) statt.
  • sollte nicht const Art der Zeichenfolge litteral trigger eine compiler-Warnung whan an die Funktion übergeben ?
  • definitiv nicht, das ist wahrscheinlich 4 oder 8 und spiegelt die Größe des Zeigers.
InformationsquelleAutor Man Person | 2012-10-17
Schreibe einen Kommentar