devo scrivere una funzione in c++ che calcoli il prodotto di due matrici A e B, di questo tipo:
codice:
void mat_mat_prod(long A[N][N], long B[N][N], long C[N][N])
dove N secondo l'esercizio "e' definita come costante all'interno del codice" (e gia' inizio a non capire bene cosa vogliano...)
io ho provato a scrivere questo programma (con una main per provare la funzione), ma dato che sono alle prime armi con c++ probabilmente ci sono degli errori grossolani, oltretutto la tale funzione funziona solo se N=3...in particolare non capisco bene come devo passare gli array multidimensionali alla funzione mat_mat_prod.

codice:
#include<iostream>
using namespace std;

void mat_mat_prod(long,long,long);

const int N = 3;

int main() {
long A[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
long B[3][3] = {{1,0,0},{0,1,0},{0,0,1}};
long C[3][3] = {{0,0,0},{0,0,0},{0,0,0}};
mat_mat_prod(A[3][3],B[3][3],C[3][3]);
return 0;
}

void mat_mat_prod(long A[3][3],long B[3][3],long C[3][3]) {
//prodotto tra due matrici questa parte dovrebbe essere corretta
for (int i=0; i<N; i++) {
        for (int j=0; j<N; j++) {
                for (int k=0; k<N; k++) {
                        C[i][j] += A[i][k] * B[k][j];
                }
        }
}
}
l'errore che mi restituisce il compilatore e' questo:
codice:
/tmp/cce7BE4P.o(.text+0x5d): In function `main':
: undefined reference to `mat_mat_prod(long, long, long)'
collect2: ld returned 1 exit status
cosa significa? qualcuno mi potrebbe aiutare? grazie in anticipo!