Creo que no hay necesidad de usar el operador
& ya que, al menos en C, un vector es un puntero a la dirección de memoria del primer elemento.
Yo lo haría de la siguiente manera. Supongo que no tendrás problemas para compilarlo en C++.
Código C:
Ver original/* copy a into b */
void copy(int from[5][5], int to[5][5])
{
int i, j;
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
to[i][j] = from[i][j];
}
}
}
Luego imprimes ambos para comprobar que son iguales (o simplemente comparas sus elementos):
Código C:
Ver originalint i, j;
int a[5][5] = {
1, 2, 3, 4, 5,
10, 20, 30, 40, 50,
11, 12, 13, 14, 15,
9, 8, 7, 6, 4,
7, 6, 5, 4, 3
};
int b[5][5];
copy(a, b);
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
/* Comprobar que son iguales */
"a[%d][%d] = %d\nb[%d][%d] = %d\n", i, j, a[i][j], i, j, b[i][j]
);
}
}
Espero que te sea de utilidad!