Programm hängt sich auf



  • Hallo Leute!

    Habe CodeBlocks installiert, als Compiler verwende ich den Standard GNU GCC ....

    Habe derzeit das Problem, dass sich (fast) alle Programme bei mir aufhängen.

    Das einzige Programm was sich nicht aufhängt, ist ne einfache Textausgabe wie zB Hello world - oder ähnliches.

    Sobald ich irgendetwas "komplexeres" ausführen möchte, hängt sich das programm nach wenigen Sekunden einfach auf.

    Im Log von CodeBlocks steht nur das:
    Checking for existence: C:\Users\Administrator\Documents\c-cplusplus\test.exe
    Executing: C:\Program Files\CodeBlocks/cb_console_runner.exe "C:\Users\Administrator\Documents\c-cplusplus\test.exe" (in C:\Users\Administrator\Documents\c-cplusplus)
    Process terminated with status -1073741819 (0 minutes, 5 seconds)

    Was ja nur bedeutet, dass das Programm nicht bis zum Ende gelaufen ist.

    Weiß jemand woran das liegen kann??

    Hier ein kleines Programm, welches sich andauernd nach der Eingabe der ersten Zahl aufhängt:

    #include <stdio.h>
    
    #define ANZAHL 5
    
    int main()
    {
        int i, scan, sum;
        int array[ANZAHL];
    
        printf("Bitte gib %d Zahlen ein:\n\n", ANZAHL);
    
        for(i=0;i<ANZAHL;i++)
        {
          scanf("%d", scan);
          array[i] = scan;
          sum += scan;
        }
        printf("Die Summer der Eingegebenen Zahlen ist: %d\n\n", sum);
    
        return 0;
    }
    


  • scanf muss eine Adresse übergeben bekommen damit es dorthin den eingelesenen Wert speichern kann, es muss dort also &scan heißen. sum ist uninitialisiert!



  • Hmm, man sollte auch auf die Warnungen des Compilers hören - und Ideone (verwendet afaik ebenfalls GCC) wirft mir sowas entgegen:

    prog.c:14: warning: format ‘%d’ expects type ‘int *’, but argument 2 has type ‘int’

    Auflösung: scanf() erwartet die Adresse der Variablen, in die geschrieben werden soll, das heißt korrekt heißt es scanf("%d", &scan); . Außerdem solltest du sum noch mit 0 initialisieren, sonst bekommst du ein etwas unerwartetes Ergebnis.



  • ach - ich bin echt schon langsam blind ......

    mich wundert es nur, dass ich da keinen error bzw warning bekommen habe....

    danke für die schnelle antworten!!!

    ja, das mit dem initialisieren ist mir jetzt auch aufgefallen .... 😉

    lg breckal


Anmelden zum Antworten