Fossi in te, la matrice la allocherei cosi'
codice:
double **funzione()
{
double **matr;
matr = new double*[4];
for(int i=0; i<4; i++)
matr[i] = new double[4];
matr[0][0] = 1.0;
matr[0][1] = 2.0;
matr[0][2] = 3.0;
matr[0][3] = 4.0;
matr[1][0] = 1.1;
matr[1][1] = 2.1;
matr[1][2] = 3.1;
matr[1][3] = 4.1;
matr[2][0] = 1.2;
matr[2][1] = 2.2;
matr[2][2] = 3.2;
matr[2][3] = 4.2;
matr[3][0] = 1.3;
matr[3][1] = 2.3;
matr[3][2] = 3.3;
matr[3][3] = 4.3;
return matr;
}
e la puoi usare nel main cosi'
codice:
int main()
{
double **p = funzione();
for(int i=0; i<4; i++)
for(int j=0; j<4; j++)
cout << p[i][j] << endl;
return 0;
}