Opendir, Dateiname "speichern"..!



  • Hallo,
    habe ein kleines Problem.
    Will die Dateinamen von Inhalt eines Ordners in einem char array speichern. Habe aber da ein kleines Problem. Hier der Code:

    char array[23][50]; //23 Einträge mit höchstens 50 chars
    
    DIR *dirOpen; 			
    struct dirent * dirEntry;
    
    dirOpen = opendir("."); 
      if (dirOpen) {
    int i=0;
    while (0 != (dirEntry = readdir(dirOpen))) {
    printf("%s\n",dirEntry->d_name);//Funktioniert, wird also im Terminal ausgegeben
    strcpy(array[i][50],dirEntry->d_name); //Funktioniert nicht...!! :(
    i++;
    }
    }
    

    Beim Compilen kommt der folgende Fehler für Zeile 11:

    warning: passing argument 1 of ‘strcpy’ makes pointer from integer without a cast
    

    Wo kann der Fehler liegen..?



  • Hi,

    ich denke, es sollte so gehen:

    strcpy(array[i],dirEntry->d_name);
    

    Du versuchst, dem 51ten Char (der übrigens nicht existiert, weil du nur 50 chars im Array definiert hast) einen String zuzuweisen, was so nicht klappen kann.



  • TdZ schrieb:

    Hi,

    ich denke, es sollte so gehen:

    strcpy(array[i],dirEntry->d_name);
    

    Hat Funktioniert..! 😉
    DANKE TdZ..! 🙂


Anmelden zum Antworten