sempre mantenendo la struttura del file che ti ho detto sopra:
in testa numero che rappresenta il numero di coppie parolachiave-risposta
quindi dal i in poi una riga per parola chiave e una per risposta
dovrebbe essere qualcosa del genere:
codice:typedef struct{ char* parola_chiave; char* risposta; }casella_t; int main(){ FILE *myfile; int dim, i; casella_t **vettore_dati; casella_t *temp; char* stringaTemp[1024+1]; myfile = fopen ("dati.txt", "r"); if(myfile == NULL){ printf("errore in lettura o file non trovato\n"); return EXIT_FAILURE; } fscanf(myfile, "%d", &dim); // dim è il numero in testa al file, rappresenta il numero di coppie di parole_chiave-risposte presenti nel file vettore_dati = (casella_t**) malloc (dim * sizeof(casella_t*)); //allochi la memoria per il vettore for(i = 0; i<0; i++){ temp = (casella_t*) malloc (sizeof(casella_t)); //allochi la casella fgets(stringaTemp, 1024, myfile); //leggi e metti nella stringa temporanea la parola chiave temp->parola_chiave = (char*) malloc( strlen(stringaTemp) * sizeof(char)); //allochi lo spazio corretto per la stirnga strcpy(temp->parola_chiave, stringaTemp); //copi fgets(stringaTemp, 1024, myfile); //leggi la risposta temp->risposta = (char*) malloc( strlen(stringaTemp) * sizeof(char)); //allochi lo spazio corretto strcpy(temp->risposta, stringaTemp); //copi vettore_dati[i] = temp; } //tutto il resto del programma... return EXIT_SUCCESS; }

Rispondi quotando