salve, ho un problema con un programma.. in poche parole ho creato una funzione sfruttando anche il tipo struct.. però penso che abbia qualche problema con i puntatori.. perchè all'interno della funzione è tutto ok, ma i valori che dovrebbero acquisire le variabili, quando passo al main, vengono persi...

codice:
void lettura_voti(record dati, stringa s1, stringa s2, int*n){ 
register int i; int m; 
FILE*f; FILE*r; FILE*t; 

printf("\nInserire il nome del file in cui sono contenuti i voti dei giocatori(specificareanche il suo indirizzo se il file non e' collocato nella stessa cartella \ndell'exe): "); scanf("%s",s1); 

f=fopen(s1,"r"); 
if (f==NULL) {
 printf ("\nSi e' verificato un errore . . .\nFile inesistente, procedere con l'inserimento dei voti manuale . . .\n"); 
                  lettura_alternativa(dati,n); } 
else{ 
fscanf(f,"%d",n); for(i=0;i<*n;i++) fscanf(f,"%f",&dati.gio[i]); 
                 } 

printf("\nInserire il nome del file in cui e' contenuto l'elenco dei nomi della formazioneschierata(specificare anche il suo indirizzo se il file non e' collocato nella \nstessa cartella dell'exe): "); 

scanf("%s",s2); 

r=fopen(s2,"r");
 
if (r==NULL) { 
  printf ("\nSi e' verificato un errore . . .\nFile inesistente, i nomi dei giocatori non saranno mostrati . . .\n"); 
t=fopen("file_errore.txt","r"); 
fscanf(t,"%d",&m);
for(i=0;i<m;i++) fscanf(t,"%s",dati.mia_rosa[i]); } 

else { 
fscanf(r,"%d",&m); 
for(i=0;i<m;i++) 
fscanf(r,"%s",dati.mia_rosa[i]); } }
questa postata è la funzione che mi legge da file i valori che mi servono.. però quando nel main richiamo un'altra funzione che si occupa della stampa, i valori sono sballati..
penso che centrano i puntatori perchè se provo a fare un printf dei valori appena acquisiti nella funzione suscritta, i valori stampati sono esatti...

help me, please!!

edit: ho dimenticato di scrivere il preambolo, che altrimenti non si capisce una mazza
codice:
#define M 12 
#define G 50 

typedef float voti[M]; 
typedef char giocatore[G]; 
typedef giocatore formazione[M]; 
typedef char stringa[G]; 
typedef struct { voti gio; formazione mia_rosa; } record;