Indipendentemente che tu la costruisca come int *matrix o int **matrix basta che prima le allochi lo spazio dinamicamente (cosi sopravvive alla funzione) e che ritorni matrix