Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/01/2013, 17:40
morisco_17
 
Fecha de Ingreso: mayo-2012
Mensajes: 19
Antigüedad: 12 años, 6 meses
Puntos: 1
copiar arrays de dos dimensiones

Hola muy buenas.

Tengo una duda sobre los arrays multidimensionales, yo quiero copiar un array de dos dimensiones a otro. He hecho este codigo, pero no me funciona, podeis decirme donde he fallado?

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. const int TAM=512;
  6.  
  7. typedef float Timagen[TAM][TAM];
  8. typedef float Tcopia[TAM][TAM];
  9.  
  10. void DetectarCelula (const Timagen &imagen, const Tcopia &copia);
  11. void Copiar (const Tcopia copia, Timagen &imagen, int alto, int ancho);
  12. void Marcar (const Timagen &imagen, const Tcopia &copia, int alto, int ancho);
  13.  
  14. int main () {
  15.  
  16.     int ancho, alto;
  17.    
  18.     Timagen imagen;
  19.  
  20.     cout << "Dime el ancho de la imagen: ";
  21.     cin >> ancho;
  22.  
  23.     if (ancho>TAM) {
  24.        
  25.         cout << "El ancho no puede ser mayor a 512. Vuelva a introducir el ancho: ";
  26.         cin >> ancho;
  27.     }
  28.    
  29.     cout << "Dime el alto de la imagen: ";
  30.     cin >> alto;
  31.  
  32.     if (alto>TAM) {
  33.    
  34.         cout << "El alto de la imagen no puede ser mayor de 512. Vuelva a introducir el alto: ";
  35.         cin >> alto;
  36.     }
  37.  
  38.     for (int j=0; j<alto; j++) {
  39.    
  40.         for (int i=0; i<ancho; i++) {
  41.            
  42.             cout << "Introduce el valor del pixel en la posicion (" << j << "," << i << "): " << endl;
  43.             cin >> imagen[j][i];
  44.            
  45.             if (imagen[j][i] > 255) {
  46.            
  47.                 cout << "Introduce el valor del pixel en la posicion (" << j << "," << i << ") dentro del rango: " << endl;
  48.                 cin >> imagen[j][i];
  49.             }
  50.            
  51.         }
  52.     }
  53.    
  54.     return 0;
  55. }
  56.  
  57. void Copiar (const Tcopia copia, Timagen &imagen, int alto, int ancho) {
  58.  
  59.     for (int a=0; a<alto; a++) {
  60.  
  61.         for (int b=0; b<ancho; b++) {
  62.  
  63.             imagen[a][b] = copia[a][b];
  64.         }
  65.     }
  66. }

Espero vuestras respuestas. Gracias.