Sisi ci ho pensato subito dopo aver scritto il post, il puntatore che restituisco punta alla stessa area di memoria di matrix, quindi posso liberare la memoria direttamente all'interno del main dopo la chiamata della funzione, quando il puntatore non mi serve più