File-pointer als Paramter?



  • Hi!
    Ich habe folgendes Problem: Ich übergebe meiner Funktion openFile den Namen der Datei und einen Filepointer. In der Funktion selbtst kann ich mit fgetc normal das erste Zeichen einlesen. Wenn ich jedoch in weiterer Folge das selbe mit dem f_file1 in der main versuche... -> Segmentation fault!
    Hat jmd einen Tipp für mich?

    int maint()
    {
    
        FILE* f_file1;
        openFile("./test.txt", f_file1);
        printf("fgtec: %c", fgetc(f_file1));  //verursacht Segmentation fault
    
     return 0;
    }
    
    //--------------------------------------------------------------------
    
    int openFile(char *name, FILE* file2open)
    {
    
      file2open = fopen(name, "r");
      printf("%c\n", fgetc(file2open));  // erstes Zeichen ausgeben funzt
    
      if(file2open == NULL)
    
      {
        printf("File not found\n");
        return -1;
      }
    
     return 0;
    }
    


  • int openFile(char *name, FILE **file2open)
    {
     ...
    }
    
    int maint()
    {
       ...
       openFile("./test.txt", &f_file1);
       ...
    }
    

    oder

    FILE* openFile(char *name)
    {
     ...
     return file2open;
    }
    
    int maint()
    {
       ...
       FILE* f_file1 = openFile("./test.txt");
       ...
    }
    


  • thx funktioniert wunderbar, muss natürlich ** sein...


Anmelden zum Antworten