Ciao a tutti! Sono nuovo e quindi mi presento. Mi chiamo Fabio e frequento il primo anno di Ingegneria Informatica a Genova e sono capitato in un problema con C++ che non riesco a risolvere.

Il testo dell'esercizio è il seguente: "[I]Si scriva una funzione C++ che calcoli il [I]prodotto degli elementi sulla diagonale principale di una matrice quadrata. La funzione riceverà come parametro un array bidimensionale di numeri reali, contenente la matrice, e le sua dimensione. Si scriva quindi un programma C++ per verificare il corretto funzionamento della funzione. E’ responsabilità del programma chiamante passare alla funzione una matrice delle dimensioni corrette."
codice:
#include <iostream>using namespace std;


void visualizzamatrice (double matrice[][], int dimensione)
{
    for (int i=0;i<dimensione;i++)
     {
         for (int j=0;j<dimensione;j++)
         {
             cout<<matrice[j]<<" ";
        }
        cout<<endl;
    }
}


int main()
{
    int dim1;
    cout<<"Inserisci il numero di colonne e righe: ";cin>>dim1;cout<<endl;
    double matrice[dim1][dim1];
    for (int i=0;i<dim1;i++)
    {
        for (int j=0;j<dim1;j++)
        {
            cout<<"Inserisci l'elemento posto nella "<<i+1<<"° colonna e "<<j+1<<"° riga: ";cin>>matrice[j];cout<<endl;
            system("CLS");
        }
    }
    visualizzamatrice (matrice, dim1);
}
Il codice del programma non è completo in quanto mi sono limitato solo a visualizzare la matrice che ho fatto inserire all'utente. Tuttavia non riesco a capire come realizzare correttamente il passaggio dell'array bidimensionale alla funzione visualizzamatrice(). Qualcuno potrebbe aiutarmi?

Il compilatore restituisce questo errore:
codice:
"[Error] cannot convert 'double (*)[dim1]' to 'double*' for argument '1' to 'void visualizzamatrice(double*, int)'"