Grazie per la risposta.
Ho modificato la funzione:
codice:
double **Covarianza (int N_campioni , double **colonna , double *mu)
{
	//double sigma[3][3] = { 0,0,0,0,0,0,0,0,0 };
	double **sigma;
	sigma = new double *[3];
	for ( int h=0 ; h < 3 ; h++ )
		sigma[h] = new double [3];
	double parz[3][3] = { 0,0,0,0,0,0,0,0,0 };

	for ( int j=0 ; j < N_campioni ; j++ )
	{
		for ( int i=0 ; i < 3 ; i++ )
			colonna[j][i] = colonna[j][i] - mu[i];
	
		for ( int m=0 ; m < 3; m++ )			// prodotto vettore colonna per se stesso trasposto
			for ( int n=0 ; n < 3 ; n++ )
				parz[m][n] = colonna[j][m] * colonna[j][n];
		
		for ( int g=0 ; g < 3 ; g++)			// aggiorno sigma con le matrici dei risultati parziali
			for ( int h=0 ; h < 3 ; h++ )
				sigma[g][h] = sigma[g][h] + parz[g][h];
	}
	
	for ( int m=0 ; m < 3; m++ )			
		for ( int n=0 ; n < 3 ; n++ )
			sigma[m][n] = sigma[m][n] / N_campioni;
	
	return sigma;
	for ( int h=0; h < 3 ; h++ )
		delete sigma [h];
	delete sigma;

}
In questo modo compila ma il risultato non è quello corretto (inserendo il codice direttamente nel main senza inserirlo in una funzione mi dà il risultato atteso).
Non capisco se continuo a sbagliare questa funzione o come la utilizzo nel main:
codice:
double **covarianza;
covarianza = Covarianza ( righe , featureTR_in , media );
Grazie ancora.