Necesito ayuda con este programa que me dejaron de tarea, ya logré hacer casi todo menos la funcion para pedir los datos que llenaran la matriz. O si no de que otra forma podría hacer esto? 
Escribe un programa que tenga dos funciones: 
   * Una funcion que genere una matriz dinámica de M renglones por N columnas y que regrese un apuntador a esa matriz.
   *Otra funcion que reciba el apuntador devuelto por la funcion anterior, encargada de leer de la entrada estandar los valores necesarior para llenar la matriz.
   Observaciones:
    *Asuma que la matriz es de enteros.
    *La funcion main invoca las dos funciones.
#include <stdio.h>
#include <stdlib.h>
void generaMatriz( int **, int *, int * );
 void leeDatos( int **, int *, int * );
int main()
{
	int **matriz, x, y;
	
	generaMatriz( matriz, &x, &y );
	
	printf("n: %d, m: %d", x, y);
	
	leeDatos( matriz, &x, &y );
	
	getchar();
	return(0);
	
	
}
void generaMatriz( int **matriz, int *x, int *y )
{
	int i, m, n;
	
	printf("Ingresa numero de filas: ");
	scanf("%d", &m); fflush(stdin);
	
	printf("Ingresa numero de filas: ");
	scanf("%d", &n); fflush(stdin);
	
	*x=m;
	*y=n;
	
	matriz=(int **)malloc(sizeof(int *)*m);
	
	for(i=0; i<n; i++)
	{
		matriz[i]=(int *)malloc(sizeof(int )*n);
	}
	
	return;
}
 void leeDatos( int **matriz, int *m, int *n )
{
	int i, j;
	
	for(i=0; i<(*m); i++ )
	{
		for(j=0; j<(*n); j++)
		{
			printf("Ingresa numero en posicion [%d][%d]: ", i, j );
			scanf("%d", matriz[i][j]); fflush(stdin);
		}
	}
	
	return;
	
}