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 ...