Ver Mensaje Individual
  #4 (permalink)  
Antiguo 07/12/2012, 13:49
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Funcion llamando structura dinamic

Ok, tu pregunta es: como paso un array multidimensional por referencia (si googleas esta pregunta tal vez encuentres otras opciones)

Creo que no puedes enviar este tipo de arrays tal cual, debes especificar el tamaño como minimo de cada elemento

Código:
void cargar(int map[27][19]) {}
Personalmente la forma mas clara de hacerlo es dejar que la funcion de cargar los datos se ocupe de todo:

Código:
int **cargar(int maxx, int maxy) {
    int **mat;
    int ctd = 0;
    
    mat = new int *[maxy];
    for(int i = 0; i < maxy; i++) {
        mat[i] = new int [maxx];
        for(int j = 0; j < maxx; j++) {
            mat[i][j] = ctd++;
        }
    }
    
    return mat;
}


int **mat;
int maxx=5, maxy=3;
mat = cargar(maxx, maxy);
En la funcion de carga debes poner tambien las comprovaciones de error (por si te quedas sin memoria o no se que mas puede pasar), de esta forma en caso de error retornas nulo y en el main sabras si hubo algun error.

Saludos
vosk