(il linguaggio con cui sto litigando è il C, in ambiente UNIX)
Ciao ragazzi, il mio problema è il seguente:
sto cercando di scrivere una funzione che legga il contenuto di un file e lo inserisca in un array di stringhe (venendo dal Java, la parola 'stringhe' mi sta facendo impazzire).
Quindi ho pensato a una cosa tipo:
int acquisisciFile ( char *nomeFileAcquisire, pack *mexxx[] )
laddove il pack è:
typedef struct pacchetto{
int numeroPacchetto;
char contenuto[2000];
}pack;
Ho scelto di usare una struct per tenere conto del numero relativo ad ogni riga in cui è stato diviso il file e poterlo riordinare, in vista del fatto che poi dovrò mettere 'righe' aggiuntive...
Quindi, creo un array di pack:
pack messaggio[numeroRighe];
con il corretto numero di righe, e fin qui, nessun problema.
Poi passo alla funzione il puntatore a questo array in modo da farle modificare direttamente l'array di mio interesse.
Ma, ragazzi, proprio non funziona!!
Cosa pensate che stia sbagliando!?
Non mi da nessun errore di compilazione, ma l'array è vuoto!
int acquisisciFile ( char *nomeFileAcquisire, pack *mexxx[] ){
pack mex;
FILE *fpA;
if ( !( fpA = fopen( nomeFileAcquisire, "r" ) ) ) { // Prova ad aprire il file.
printf("Errore in apertura");
return 1;
}
printf( "File aperto \n" );
int contatore = 0;
while ( 1 ){
mex.numeroPacchetto = contatore;
fgets( mex.contenuto, 2000, fpA );
if ( feof( fpA ) ) break;
int puntatore = (int) &mex;
mexxx[contatore] = puntatore;
contatore ++;
}
fclose( fpA );
return 0;
}