Originariamente inviato da Sergio Pedone
Ciao infinitejustice, a chi è riferita la tua risposta?
a chi ha iniziato il thread. Se allocata dinamicamente la memoria sopravvive alla funzione e quindi basta ritornare il puntatore.

codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int **miaFunz(int, int);


void main(int argc, char **argv){

	int **myMatrix = miaFunz(5, 3);
}

int **miaFunz(int m, int n){

	int i, j, **matrix;

	if(!(matrix = (int **)malloc(m*sizeof(int *))))
		abort();

	for(i = 0, srand(time(NULL)); i < m; i++){
		*(matrix+i) = (int *)malloc(n*sizeof(int));
		for(j = 0; j < n; j++)
			*((*(matrix+i))+j) = rand()%100;
	}

return matrix;
}