ragazzi ho un problema con questa funzione...mi da un errore di segmentazione nel main perkè evidentemente non funziona bene il realloc. Inoltre non passa all'esterno l'indirizzo effettivo di B in quanto ha un valore diverso dall'interno all'esterno.

codice:
void no_border (int m, int n, int **A, int **B, int *k)
{
int i,j;
 
    // Allocazione dinamica di COORDINATE (creazione di un vettore bidimensionale di dim iniziale 1x2)
    
    //Alloca le righe
    B=(int **)malloc(1*sizeof(int *));
    //Verifica allocazione righe
    if (B == NULL) { 
  		printf("MATRICE B - Allocazione righe fallita: memoria insufficiente");
		exit(1);
    }
    //Alloca le colonne
    for (i=0; i<1; i++){
      *(B+i)=(int *)malloc(2*sizeof(int));
      //Verifica allocazione colonne
      if (*(B+i) == NULL) { 
  		printf("MATRICE B - Allocazione colonne fallita: memoria insufficiente");
		exit(1);
      }
    }
   //analizza gli elementi della matrice non di bordo 
   for (i=1; i<m-1; i++){
       for (j=1; j<n-1; j++){
           if (*(*(A+i)+j) > *(*(A+i-1)+j)){
              if (*(*(A+i)+j) > *(*(A+i)+j+1)){
                 if (*(*(A+i)+j) > *(*(A+i+1)+j)){
                    if (*(*(A+i)+j) > *(*(A+i)+j-1)){
                            //assegnazione degli indici dell'elemento  
                            *(*(B+(*k))+0)=i;
                            *(*(B+(*k))+1)=j;
                            //incrementa l'indice-dimensione dell'array B
                            *k=*k+1;
                            //rialloca l'array B espandendolo a k righe
                            B=(int **)realloc(B,*k*sizeof(int*));
                            //alloca i vettori colonna
                            *(B+(*k))=(int *)malloc(2*sizeof(int));
                            /************************************
                            //inizializzazione k-esima riga creata per il realloc succ
                            *(B+(*k)) = NULL;
                            //allocazione delle ripettive colonne (REALLOC=MALLOC)
                           	*(B+(*k))=(int *)realloc(*(B+(*k)),2*sizeof(int));
                           	*************************************/
                    }
                 }
              }      
           }
       }
   }
   printf("indirizzo di memoria interno di COORDINATE=%d",B);      
}