non devi agiunere la mia versione di visualizza, ma la devi eventualmente sostituire alla tua. Questo e il mio codice compilante:

#include <stdlib.h>
#include <stdio.h>
//#include <conio.c>

/* dichiarazione dei prototipi di funzione */

int leggi_numero(char*);
void inserisci(char*,int**,int,int);
void visualizza(char*,int**,int,int);

/* programma principale */

int main (void)

{

int righe,colonne;
int **mat; /* puntatore a puntatore */
int i;

righe = leggi_numero ("Inserisci il numero delle righe della matrice...");
colonne = leggi_numero ("Inserisci il numero delle colonne della matrice...");
mat = (int**)malloc(righe*sizeof(int*));

for (i=0;i<righe;i++)
mat[i] = (int *)malloc(colonne*sizeof(int));

inserisci("Hai inserito la matrice:\n",mat,righe,colonne);
visualizza("Hai inserito la matrice:\n",mat,righe,colonne);

system("pause");

}

/* definizione delle funzioni */

int leggi_numero(char*s)

{

int num;

printf ("%s", s);
scanf ("%d", &num);


return (num);

}

void inserisci (char*s,int**x,int rig,int col)

{

int i,j;
printf("%s Numero_righe: %d Numero_colonne: %d", s,rig,col);

for (i=0;i<rig;i++)
for (j=0;j<col;j++)

scanf ("%d", &x[i][j]);

}

void visualizza (char*s, int**x,int rig,int col)
{

int i,j;
printf("\n\n%s", s);

for (i=0;i<rig;i++){
for (j=0;j<col;j++)
printf("%d ", x[i][j]);
printf("\n");
}
printf("\n");
}