[PSP] ¿Como pasar por parametro un array doble?

Buenas gente, a ver no se como hacer una llamada a un array doble para los mapas de tiles.

Yo tengo este codigo:

int indice;
const short  nivel1_map[10] [30];




luego en el codigo lo llamo tal q asi:

indice = nivel1_map[ytile+i] [xtile+j];



Ahora la cosa viene pq no se como llamar a ese array con parametros, del tipo





void RenderizaMapa(Tile *obj, int, int , const short [] [], SDL_Surface *);

//mapa_tal seria el const short
indice = mapa_tal[ytile+i] [xtile+j];




¿Como pongo ese array como parametro para poder llamarlo? de esta forma me dice un error array type has incomplete element type.

¿Sugerencias po favo?
Creo que entiendes mal lo que es una matriz o como tu lo llamas array doble asi que te pongo un manualillo
http://www.mqo.es/modules.php?op=modload&name=News&file=article&sid=1041
si lo pasas como una referencia == puedes, no? en realidad hasta puedes hacer los calculos a mano de la posición del vector sin que te diese violación de segmento...
¿y como se hace eso de pasarlo como referencia? yo lo unico q busco es crear una funcion en la q yo pueda pasarle como parametro el mapa q quiero:


Funcion
void RenderizaMapa(Tile *obj, int, int , const short [] [], SDL_Surface *);


Llamada
RenderizaMapa(Tilesmapa, X, Y , mapa1 [10] [20], &pantalla);



Algo como esto pero no se como pasar esa matriz, array, vector o como querais llamarla
Prueba con:

void RenderizaMapa(Tile *obj, int, int , const short [] [30], SDL_Surface *);
esto debería de funcionar...

void RenderizaMapa(Tile *obj, int, int , const short ** mapa , SDL_Surface *);

para invocarlo tienes que tener algo así:

short mapa[20][30]; ( o si quieres lo haces con memoría dinámica )



un consejo cuando se publique el tutorial de estruccturas de datos te aconsejo que lo leas no tienes muy claro lo que es una matriz ni lo que es un array... ;)
5 respuestas