char* fehler



  • hallo,

    warum gibt es dabei einen laufzeitfehler?

    char *c;
        cin >> c;
    

    Ich möchte c keine feste zuweisen, weil ich nicht weiß, wie lang die Eingabe sein wird. Mit Strings möchte ich hier auch nicht arbeiten.

    Danke



  • char schrieb:

    hallo,

    warum gibt es dabei einen laufzeitfehler?

    char *c;
        cin >> c;
    

    Ich möchte c keine feste zuweisen, weil ich nicht weiß, wie lang die Eingabe sein wird. Mit Strings möchte ich hier auch nicht arbeiten.

    Danke

    Du bist immer an ein Limit gebunden. Am Anfang steht immer ein Speicherbereich, der eine bestimmte Größe hat. Der Clou an std::string ist, dass es diesen Speicherbereich für dich automatisch vergrößert. Es muss also nicht bekannt sein, wie groß die Eingabe sein wird.

    Es macht also genau das, was du willst. Wo liegt das Problem? Willst du dir dieses Verhalten etwa selber (viel ineffizienter) nachbauen?

    Dein Code funktioniert jedenfalls deshalb nicht, weil du einen Zeiger deklariert hast.


Anmelden zum Antworten