Cual es la diferencia entre este y el que mande arriba??? este lo probe y me funciono, lo que hace es crear un puntero matriz que este caso sera una matriz de filas y columnas de n*m valores, lo que hace con malloc es inicializarla, pueden probar con Matriz[1][3]=1; e imprimirlo y funciona
int *matriz;
int i, int filas_dinamicas, int columnas_dinamicas;
matriz = malloc(filas_dinamicas*sizeof(int));
for(i=0;i<filas_dinamicas;i++)
{
matriz = malloc(columnas_dinamicas*sizeof(int));
}