Sto muovendo i primi passi nell'uso avanzato (per me ) dei puntatori. Sto cercando di creare un programma che prenda in input una matrice e la stampi. Ecco il codice:

codice:
#include <malloc.h>
#include <stdio.h>
int** leggi(int,int);
void stampa(int**,int,int);
int main(){
	int a,b;
	int *(*matrix);
	printf("Dammi il numero di righe: ");
	scanf("%d",&a);
	printf("Dammi il numero di colonne: ");
	scanf("%d",&b);
	matrix=leggi(a,b);
	printf("\n");
	stampa(matrix,a,b);
	return 0;
	}
int** leggi(int a,int b){
	int **matrix;
	int i,j;
	// come allocare la matrice?
	for(i=0;i<a;i++){
		for(j=0;j<b;j++){
			printf("Dammi la posizione %d %d: ",i,j);
			scanf("%d",&matrix[i][j]);
			}
		}
	return matrix;
	}
void stampa(int** matrix,int a,int b){
	int i,j;
	for(i=0;i<a;i++){
		for(j=0;j<b;j++){
			printf("%d	",matrix[i][j]);
			}
		printf("\n");
		}
	}
Non so come usare il comando malloc per allocare la matrice. Potreste illuminarmi?