Innanzi tutto grazie per la risposta

dunque ho seguito il tuo consiglio, quando vado a salvare la matrice, prima salvo il numero delle righe e delle colonne.

Poi ho fatto questa funzione che dovrebbe tirarmi fuori la matrice:
codice:
int **loadMatrice(char *pathFile, int *righe,int *colonne){
FILE *my_file; 
my_file = fopen(pathFile,"r"); 
int **Matrice; 
int i,j; 
if(my_file){ 
fscanf(my_file,"%d",righe); 
fscanf(my_file,"%d",colonne); 
Matrice = allocaMemoriaMatrice(*righe,*colonne); 
if(Matrice != NULL){ 
for(i = 0; i < *righe; i++){ 
   for(j = 0;j < *colonne; j++){ 
     fscanf(my_file,"%d",&Matrice[i][j]); 
        /* Matrice[i][j] = 1 ok */ 
             } 
       } 
   } 
return Matrice; 

 }else{ 
return 0; 
} 
}
dove
codice:
allocaMemoriaMatrice(int righe,int colonne)
è una funzione che alloca dinamicamente la memoria per una matrice, il problema è questo:

se assegno staticamente(come nel commento) un valore alla matrice funziona alla perfezione, se invece utilizzo
codice:
fscanf(my_file,"%d",&Matrice[i][j]);
quando vado a visualizzare la matrice escono fuori tutti valori sballati...eppure il numero delle righe e delle colonne viene correttamente letto e assegnato ai valori righe e colonne(ho testato).

Dove sto sbagliando..?

Grazie ancora per la pazienza..