Run-Time Check Failure #2 - Stack around the variable 'Kurve' was corrupted. Kein String!!!



  • Hallo Zusammen!

    ich verwende einen
    unsigned char
    als einen Zähler. Ich definiere die Variable:
    unsigned char Kurve;

    dann habe ich eine Funktion, die je nach Eingabe De Variable setzt.

    Eingabe (..., ..., unsigned char* Kurve);

    Aufruf erfolgt als
    Eingabe(..., ..., &Kurve);

    In der Funktion ist die einzige Aktion
    scanf("%d", Kurve);

    Danach ha be ich nur noch ein Paar Auswertungen, die den Wert nicht verändern.

    Hat jemand eine Idee? Die übliche Lösung, dass man in einen Char-Array zu viel reinscshreibt fällt wohl weg, oder?

    Ausserdem bleibt es auch so, wenn ich char durch short ersetze.

    Danke schon mal im Voraus



  • Den einzigen Fehler in deinen Codeschnipseln den ich sehe ist der falsche Formatschlüssel. Das müsste %hhu sein.

    man: scanf

    Ob genau das das von dir angesprochene Problem verursacht kann man so (ohne mehr Code) nicht sagen.



  • Sexymaxy schrieb:

    In der Funktion ist die einzige Aktion
    scanf("%d", Kurve);

    Danach ha be ich nur noch ein Paar Auswertungen, die den Wert nicht verändern.

    Hat jemand eine Idee? Die übliche Lösung, dass man in einen Char-Array zu viel reinscshreibt fällt wohl weg, oder?

    Doch, genau das ist dein Problem: du sagst, scanf(), daß du dort einen Zeiger auf einen int hast, wo es seine Werte reinpacken soll - und da int normalerweise etwas größer als char ist, schreibt scanf() über den Speicherbereich hinaus, den du für 'Kurve' angelegt hast.



  • Sexymaxy schrieb:

    In der Funktion ist die einzige Aktion
    scanf("%d", Kurve);

    %c statt %d und die adresse von 'Kurve' sollten es sein.

    scanf("%c", &Kurve);
    


  • 😃
    Tausend Dank!

    Manchmal könnte ich mich selber ohrfeigen. 😃



  • scanf("%c", &Kurve);
    

    [/quote]

    das '&' ist falsch. dsas ist bereits ein Pointer 🙂



  • Sexymaxy schrieb:

    scanf("%c", &Kurve);
    

    das '&' ist falsch. dsas ist bereits ein Pointer 🙂

    stimmt, hab' nur oben dein unsigned char Kurve; gesehen.


Anmelden zum Antworten