Per restare nello spirito di quanto scritto da te:
	codice:
	
#include <stdio.h>
#include <stdlib.h>
/*
 * 
 */
int **matrix;
int m,n,i,j,x;
int main(int argc, char** argv)
{
printf("Scrivi righe e colonne della matrice\n");
scanf("%d %d",&m,&n);
printf("Valori inseriti %d, %d \n", m, n);
matrix= malloc(m*sizeof(int *));
for(x=0; x<m; x++){
    matrix[x] = malloc(n*sizeof(int));
}
for(i=0;i<m;i++)
  for(j=0;j<n;j++)
    {
      printf("Inserisci il valore al posto %d.%d\n",i,j);
      scanf("%d", &matrix[i][j]);
    }
    return (EXIT_SUCCESS);
}