Salve, ho scritto questo codice:
#include <stdio.h>
#include<stdlib.h>




codice:
int main(void) {


	int righe, colonne, i, j;
	//printf(" righe");
	scanf("%d", &righe);
	//printf("\n");
	//printf("colonne");
	scanf("%d", &colonne);
	//printf("\n");


	int **matrice;
	matrice = (int**)malloc((righe * sizeof(int*)));
	for (i = 0; i < righe; i++) {
		matrice[i] = (int*) malloc(colonne * sizeof(double));
	}


	for(i=0;i<righe;i++){
		for(j=0;j<colonne;j++){
			printf("inserisci elemento riga %d e colonna %d",i,j);
			scanf("%d",&matrice[i][j]);
			printf("\n");
		}
	}


	for(i=0;i<righe;i++){
			for(j=0;j<colonne;j++){
				printf("matrice[%d][%d]= %d  ",i,j,matrice[i][j]);


			}
			printf("\n");
		}
	return 0;
}
per l'allocazione dinamica di una matrice, però (e non riesco a capire il motivo) va il loop.
Se lo eseguo dal terminale di Ubuntu, non esce fuori nessuna stampa, e se provo a chiudere il terminale esce l'avviso: "processo in esecuzione", se invece lo provo su windows, con IDE eclipse, non visualizza nessuna stampa, ma se inserisco gli interi righe e colonne, e premo stop, a quanto pare alloca la matrice perchè questo è il risultato che ottengo:

inserisci elemento riga 0 e colonna 0
inserisci elemento riga 0 e colonna 1
inserisci elemento riga 0 e colonna 2
inserisci elemento riga 1 e colonna 0
inserisci elemento riga 1 e colonna 1
inserisci elemento riga 1 e colonna 2
inserisci elemento riga 2 e colonna 0
inserisci elemento riga 2 e colonna 1
inserisci elemento riga 2 e colonna 2
matrice[0][0]= 11014128 matrice[0][1]= 11010244 matrice[0][2]= 67108868
matrice[1][0]= 11014680 matrice[1][1]= 11015656 matrice[1][2]= 1548765276
matrice[2][0]= 11014680 matrice[2][1]= 11015656 matrice[2][2]= 1936421487



Non riesco a capire!