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.
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.