Originariamente inviato da oregon
Allora devi allocare la memoria per ogni vettore.

Devi allocare lo spazio per

filename[0]

con la malloc e così via per le altre parti ...

Ma non sono convinto su quello che vuoi fare ... tu vuoi restituire una struttura con tanti nomi di file o una struttura con le parti di un solo nome di file?

Fai un esempio pratico ...
Allora io ho creato questa struttura:

typedef struct{
string filename[MAX_DIM];
string ext[MAX_EXT];
string path[MAX_DIM];
string full_path[MAX_DIM];
}file_c;

La funzione file_c* alloca_nuovo_file(const string filename,const string path) mi dovrà creare un nuovo file vuoto su disco... I parametri che io passerò da tastiera alla funzione sono il filename (nome con estensione del file da creare) e la path (percorso dove creare il file)...
Una volta che io fornirò il filename,poniamo il caso sia un file di testo "ciao.txt", "ciao.txt" dovrà essere copiato in posizione iesima nel vettore string filename[MAX_DIM] della struttura da me creata(file_c),stessa cosa con la path,fullpath e estensione, che dovrò estrapolare dal filename... quindi in parole povere poniamo richiami 2 volte la stesssa funzione:


Inserisci il filename: 1.txt
Inserisci la path: c:\

FILE CREATO - PERCORSO FILE: c:\1.txt

Inserisci il filename: 2.txt
Inserisci la path: d:\

FILE CREATO - PERCORSO FILE: d:\2.txt

file_c.filename[0] sarà uguale a "1.txt"
file_c.filename[1] sarà uguale a "2.txt"
file_c.path[0] sarà uguale a "c:\"
file_c.path[1] sarà uguale a "d:\"
file_c.ext[0] sarà uguale a "txt"
file_c.ext[1] sarà uguale a "txt"
file_c.full_path[0] sarà uguale a "c:\1.txt"
file_c.full_path[1] sarà uguale a "d:\2.txt"