Código:
double a[3][3],b[3][3];
copiar(a,b,3);
Claro como dijo MaxExtreme:
Cita: Instru, no es lo mismo [][] que **. Pese a que entre [] y * no halla poca diferencia, entre los de más de una dimensión sí.
Asi que no te lo acepta el momento de invocar la fucion.
Cita: no pense que eso fuese a funcionar, pero funciono perfectamente. De hecho, los punteros dobles a double (double **a), despues de esa delcaracion se pueden usar como arrays multidimensionales normales, es decir, estas expresiones son validas:
a[2][1] = 9;
double num = a[1][2];
Que te hizo pensar que no funcionaria, el codigo esta perfecto, pro imagino que la idea es hacerlo mas general, ¿no?
Algo asi:
Código:
double **a;
a = new double *[n];
for(int i=0;i<n;i++)
a[i] = new double[n];
// lo mismo para b
copiar(a,b,n);
Porque si solo vas a usar matrices de 3x3 entonces no tienes por que usar punteros. Aunque imagino qu el aprendizaje que te quedo de esto es mas valioso.
Acuerdate de liberar la memoria que reservaste con el operador
new
Saludos