Stack around the variable "path" was corrupted



  • Hallo Community,

    ich muss für meine Semsterprüfung einen einfachen Sudoku-Löser schreiben.

    Normalerweise sollte das kein Problem sein. Nur aktuell komme ich wegen einer Kleinigkeit ins Straucheln.

    Nachfolgender Code:

    int main()
    {
    	char pfad[200];
    	struct Sudoku sodoku;
    
    	printf("Bitte geben sie den Pfad zu dem Sudoku an:\n\n");
    	scanf("%s", pfad);	
    
    	sudoku_einlesen(pfad, &sodoku);
    
    	return 0;
    }
    
    int sudoku_einlesen(char pfad[], Sudoku *s)
    {
      FILE *fp;
      char line[G];
      int i;
      int zahl;
      int zeile = 1;
      fp = fopen(pfad, "r");
    }
    

    Die Struktur erhält nur das Array "spielfeld" mit der Länge 9 und wurde noch gar nicht initalisiert.

    Allerdings kommt, wenn ich das Programm ausführe, und einen Pfad wie z.B. "c:\sudoku.txt" (was nicht 200 Zeichen sind) eingebe, kommt die oben genannten Fehlermeldung.

    Habt ihr eine Idee? Wo habe ich einen Denkfehler?

    Gruß



  • Ich siehe da keinen Fehler...
    Wie gross ist eigendlich G? Hat warscheinlich nichts damit zu tun...
    Du solltest auch fopen nach dem returnwert abfragen.
    Kommt der fehler beim kommpilieren?



  • Stell doch mal bitte Quellcode bereit der auf den Fehler hin gekürzt ist. Dann wirst du schnell(er) Hilfe bekommen können.



  • _ schrieb:

    Ich siehe da keinen Fehler...
    Wie gross ist eigendlich G? Hat warscheinlich nichts damit zu tun...
    Du solltest auch fopen nach dem returnwert abfragen.
    Kommt der fehler beim kommpilieren?

    Laut Titel handelt es sich wohl um ein Runtime-Error. Dieser kann auf die Verwendung nicht initialisierter Variablen hindeuten, etc. Kann man an dieser Stelle leider noch nicht konkreter sagen.



  • ich hab mal versucht es zu testen, gibt kein fehler

    #include <stdio.h>
    
    #define G 9
    
    struct Sudoku
    {int x;};
    
    int 
    sudoku_einlesen
    (char pfad[], struct Sudoku *s)
    {
      FILE *fp;
      char line[G];
      int i;
      int zahl;
      int zeile = 1;
      fp = fopen(pfad, "r");
    } 
    
    int main()
    {
        char pfad[200];
        struct Sudoku sodoku;
    
        printf("Bitte geben sie den Pfad zu dem Sudoku an:\n\n");
        scanf("%s", pfad);    
    
        sudoku_einlesen(pfad, &sodoku);
    
        return 0;
    }
    

    vielleicht kann jemand helfen wenn du angibst welchen Compiler du nutzt. ich habs mit tcc probiert.



  • Hat sich schon erledigt. Das Problem lag im späteren Algorithmus.


Log in to reply