Bug in Dev-C++ 4.9.8.0?
-
Ich hab folgenden Code
#include <stdio.h> short foo ( void ) { short Column = 0; short fooo = 3; do { fprintf(stdout,"\n\t\tWelche Reihe: "); fscanf(stdin,"%d",&Column); if ( Column >= fooo ) { fprintf(stdout,"\n\t\tFalsche Eingabe. Bitte wiederholen."); } /* Wenn Column < fooo, dann Absturz??? */ }while ( Column >= fooo ); return Column; } int main ( int argc, char** argv ) { short foobar = 0; foobar = foo(); return 0; }
Ich gebe für Colummn einen Wert kleiner fooo ein und das Programm beendet sich mit einer "Programmfehler"-MessageBox. Durch Austesten konnte ich jetzt die Bedingung in der while-Schleife als Fehlerquelle ausmachen, aber warum?
Habe ich evtl was übersehen (schlaflose Nacht) oder kann jemand den Fehler reproduzieren oder weiß Hilfe? Wenn ich Column und fooo als int deklariere, klappt das Programm einwandfrei...
-
Mit dem Formatstring in fscanf liest du ints ein, und keine shorts. Entweder du änderst den Typ dahingehend oder du änderst den Formatstring.
-
thx.
mit %hd klappt nun alles einwandfrei