Fehler finden! Kann mir jemand sagen wo hier Fehler sein sollen?????
-
Helft mir bitte den Fehler zu finden!
Habe eine Datei mit dem Namen: demo_warning.c benutzt. Habe sowohl -Wall und -O6 (höchste Codeoptimierung), aber auch den Debugger gdb ausprobiert.
Hier ist der Quellcode:
// A very strange C program
// compile with: gcc demo_warning.c
// run: ./a.out
// compile again: gcc -Wall demo_warning.c
// compile again: gcc -Wall -O6 demo_warning.c
// compile again: gcc -ansi -Wall -Werror demo_warning.c
// gdb can help us to find the segmentation fault// assume we are to lazy to type this: #include <stdlib.h>
main (int argc, char** argv) {
int i, j, n;
double a;/************* long *************/
i = atol (argv[1]);
printf ("parameter1 has numeric int value %d, n = %d\n", i, n);if (i=7)
printf ("parameter1 is seven\n");/************* double float *************/
a = atof (argv[1]);
printf ("parameter1 has numeric value (double float) %f\n", a);
printf ("parameter1 interpreted as int: %d\n", a);/************* scanf *************/
printf ("enter a number: ");
/* fflush (stdout);
/* use fflush to print "enter a number: " without newline */scanf ("%d", j);
printf ("j = %d\n", j);
}
-
Kannst du dein Problem mal beschreiben und Code-Tags benutzen. Die Leute bekommen sonst eventuell Augenkrebs.
blan
-
i sollte vom typ "long int" sein, und dann wird das mit "%ld" ausgegeben. n ist in deinem ersten printf noch nicht initialisiert und hält daher undefinierte werte.
if(i==7) statt i=7
wenn du schon dein double als int ausgeben willst, dann caste das doch bitte richtig.
scanf("%d",&j) statt scanf("%d",j) da ja ein zeiger auf ein int benötigt wird...
main() in c braucht ein return statement und damit schaut das ganze dann so aus: "int main(...)"
gcc kannd doch maximal -O3 oder bin ich da falsch informiert???
mehr sind mir jetzt auf die schnelle nicht aufgefallen:(
kann mir ja nur schwer vorstellen, dass du das durch den compiler pressen konntest...
lg lolo
-
gcc -Wall -W -pedantic-errors -std=c99
sollte dich bei allen Fehlern in dem Code warnen.
Aber nutz Codetags und rück deinen Code richtig ein!