Ho iniziato a vedere un po' come allocare dinamicamente la matrice A... x escludere le cose che riguardano la matrice B x ora le ho commentate... con l'allocazione dinamica funziona tutto alla grande (dopo il suggerimento della printf  ), ma ora non riesco a capire dove sbaglio...lo compila e m da come warning le var che riguardano la matrice B x il fatto che non sono utilizzate(OVVIO)...quando lo eseguo m chiede  il numero di righe/colonne che deve avere la matrice e poi  "Segmentation fault"...perchè???
ah, per quanto riguarda il numero di righe e colonne ci ho aggiunto la validazione xke non deve essere minore o uguale a zero!!! 
ecco il codice.....
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
   int riga1,
       riga2;
   int colonna1,
       colonna2;
   int n_rc,                     /*numero di righe/colonne*/
       n_tot,                    /*numero totale degli elementi*/
       i;                        /* contatore*/
   int **matrice1,
       **matrice2;
   FILE *a,
	*b;
    
   int esito_lettura;           /* lavoro: esito lettura */ 
   char carattere_non_letto;    /* lavoro: carattere non letto */ 
 do 
      { 
    
  	printf("Digita il numero ri righe che deve avere la matrice (0 < ) "); 
    
 	 esito_lettura = scanf("%d", 
				&n_rc); 
    
 	 if (esito_lettura != 1 || n_rc < 0) 
 	 { 
    
    	  do 
     	 { 
		carattere_non_letto = scanf("%c", 
                          		    &carattere_non_letto); 
         } 
              while (carattere_non_letto != '\n'); 
    
         } 
       } while (esito_lettura != 1 || n_rc < 0); 
   a = fopen("matrice_A.txt", "r");
   b = fopen("matrice_B.txt", "r");
matrice1 = (int**)calloc(n_rc, sizeof(int*));
   for(riga1=0; riga1<n_rc; riga1++)
      for(colonna1=0; colonna1<3; colonna1++)
        fscanf(a, "%d%d", &riga1, &colonna1);
		for(i=0; i<n_tot; i++)
		     matrice1[n_tot] = (int*)calloc(n_rc, sizeof(int));
   
  /*for(riga2=0; riga2<n_rc; riga2++)
      for(colonna2=0; colonna2<3; colonna2++)
         fscanf(b, "%d", &matrice2[riga2][colonna2]);*/
   fclose(a);
 /*  fclose(b);*/
   for(riga1=0; riga1<n_rc; riga1++)
   {
      for(colonna1=0; colonna1<n_rc; colonna1++)
         printf("%d ", matrice1[riga1][colonna1]);
      printf("\n");
   }
   printf("\n");
  /* for(riga2=0; riga2<n_rc; riga2++)
   {
      for(colonna2=0; colonna2<n_rc; colonna2++)
         printf("%d ", matrice2[riga2][colonna2]);
      printf("\n");
   }*/
   
   return(0);
}
grazie ancora e scusa del disturbo