C Pointer Frage

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • C Pointer Frage

    Hallo,

    Ich habe eine kurze Frage zu einem kleinen Übungsprogramm, welches ich gerade in C schreibe.
    Es soll auf meinem Linux-Rechner laufen, und liefert leider einen Speicherzugriffsfehler.

    Es ist eine kleine Funktion int replace(char *), die die Zahl der Leerzeichen zählen und durch Minus-Zeichen ersetzen soll. Leider kommt bei dem Versuch die Minus-Zeichen zu überschreiben ein Speicherzugriffsfehler. (Zeile 9)

    Wenn ich mich recht an meine MSDOS-Zeiten mit C erinnere, dann haben solche Dinge dort immer funktioniert... (Ist aber laange her..)

    Vielen Dank im Voraus.

    Quellcode

    1. #include <stdio.h>
    2. int replace(char *c)
    3. {
    4. int ret =0;
    5. while (*c != '\0')
    6. {
    7. if (*c == ' ') {
    8. *c = ' ';
    9. ret ++;
    10. }
    11. c++;
    12. }
    13. return (ret);
    14. }
    15. main()
    16. {
    17. char *cat = "The cat sat some where i want to know.";
    18. int n = replace(cat);
    19. printf("%d Spaces found and replaced: %s\n", n, cat);
    20. }
    Alles anzeigen