ciao a tutti sono nuovo e spero possiate aiutarmi!

allora inizo subito esponendo il mio problema:

devo leggere da un file di testo. il file è strutturato così:
ogni riga è composta da 3 interi e una sequenza di parole. ogni riga quindi è una struttura definita come tipo (int int char int ) e la sequenza di parole con spazi deve essere presa e messa in un array di massima dimensione 100.
allora siccome ha gli spazi ho pensato di usare fscanf per i primi 3 interi e mettere tutto dentro un array di strutture, e fgets per la stringa... ma non riesco a fargli leggere un bel niente..
questa è la struttura:
codice:
typedef struct {
				int vet1;
				int vet2;
				char string[101];
				int vet3;
			} struttura;

questo è quello che ho scritto per la funzione di lettura:

codice:
struttura * leggiStruttura(char * fileName, int * dim) {
        int count, i;
        FILE * fp;
        struttura * result;
        struttura temp;

        if ((fp=fopen(fileName, "r")) == NULL){
				printf("nessun file trovato ciccio!");
               exit(1);
			}
        count = 0;
        while ((fscanf(fp, "%d %d %d",&(temp.vet1), &(temp.vet2), &(temp.vet3)) == 3) && ((fgets(temp.string, 101, fp)) != NULL))
               count++;
        rewind(fp);

        result = (struttura *) malloc(count * sizeof(struttura));
        for (i=0; i<count; i++)
               fscanf(fp, "%d %d %d", &(result[i].vet1), &(result[i].vet2), &(result[i].vet3));
		   		fgets(result[i].string, 101, fp);

        fclose(fp);
        *dim = count;
        return result;
}
il compilatore compila ma non mi scrive nulla quando eseguo...
dove sbaglio?