salve, avrei bisogno di una spiegazione sulle linee di codice della parte dell'allocazione della matrice:
int **matrice;
..
..
//allocazione matrice
matrice = (int**) malloc (righe*sizeof(int *)); //perchè si mette il puntatore qui (int *) ?
for(r=0;r<righe;r++)
matrice[r] = (int*) malloc(colonne*sizeof(int));
//qui invece si usa (int*) perchè allochiamo per righe giusto? e dopo perchè size of(int) non ha bisogno di puntatore?