Problem mit fopen in For Schleife



  • Hallo,
    ich habe mittels opendir ein Verzeichnis ausgelesen und die Dateinamen in ein char** gespeichert. Wenn ich mir in einer for Schleife alle Dateien ausgeben lassen mag, klappt auch alles wunderbar. Wenn ich nun aber ein fopen und fclose einbaue, bekomme ich nur noch zerbrochene Dateinamen als Ausgabe...

    char path[512]="ordner/";
           FILE * Datei;
            ..
            ..
            for(i=0; i<anz; i++)
            {
                    strcat(path,list[i]);
                    printf("%i: %s \n",i-1, list[i]);
                    Datei=fopen(path,"r");
                    fclose(Datei);
                    path[0]='\0';
                    strcat(path,"ordner/");
            }
    

    Wie gesagt, die Ausgabe ohne Verwendung von fopen/fclose klappt wunderbar. Aber wenn diese beiden Befehle enthalten sind (hab 4 Dateien im Ordner) werden der 1. und der 3. korrekt ausgegeben, der 2. garnicht und der 4. hat bei der Dateiendung merkwürdige Zeichen hinten dran



  • wenn du mit malloc arbeitest, schreibst du wohlmöglich in wilden speicherbereich.
    ansonsten müsstest du mal mehr code zeigen, aus deinen zeilen ist kein fehler ersichtlich.



  • ajljllke schrieb:

    wenn du mit malloc arbeitest, schreibst du wohlmöglich in wilden speicherbereich.
    ansonsten müsstest du mal mehr code zeigen, aus deinen zeilen ist kein fehler ersichtlich.

    Bingo! Hatte ich auch eben probiert, hab den Speicherbereich verkleinert und dann gings auch.. Muss mir das mit Malloc nochmal genau durchlesen, wie man denn nun optimal reserviert 🙂
    Danke


Log in to reply