Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/01/2013, 21:21
carbon
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 9 meses
Puntos: 35
Respuesta: copiar arrays de dos dimensiones

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
  1. /* copy a into b */
  2. void copy(int from[5][5], int to[5][5])
  3. {
  4.     int i, j;
  5.    
  6.     for (i = 0; i < 5; i++)
  7.     {
  8.         for (j = 0; j < 5; j++)
  9.         {
  10.             to[i][j] = from[i][j];
  11.         }
  12.     }
  13. }

Luego imprimes ambos para comprobar que son iguales (o simplemente comparas sus elementos):

Código C:
Ver original
  1. int i, j;
  2.     int a[5][5] = {
  3.         1, 2, 3, 4, 5,
  4.         10, 20, 30, 40, 50,
  5.         11, 12, 13, 14, 15,
  6.         9, 8, 7, 6, 4,
  7.         7, 6, 5, 4, 3
  8.     };
  9.     int b[5][5];
  10.    
  11.     copy(a, b);
  12.    
  13.     for (i = 0; i < 5; i++)
  14.     {
  15.         for (j = 0; j < 5; j++)
  16.         {
  17.             /* Comprobar que son iguales */
  18.             printf(
  19.                 "a[%d][%d] = %d\nb[%d][%d] = %d\n", i, j, a[i][j], i, j, b[i][j]
  20.                 );
  21.         }
  22.     }

Espero que te sea de utilidad!


Última edición por carbon; 12/01/2013 a las 22:24