Discussion:
Paso de arrays como parámetros a funciones.
(demasiado antiguo para responder)
eoliTH
2004-02-22 23:27:54 UTC
Permalink
Hola, tengo una función que lo que hace es mostrar un array por pantalla
(un array bidimensional tipo "tablero") tal que así:

#define ANCHO 10
#define ALTO 8

/* etc... */
void VisualizarTablero(char tablero[ANCHO][ALTO]);

int main () {
char tablero[ALTO][ANCHO];
/* etc... */
VisualizarTablero(tablero);
/* etc... */
return 0;
}


void VisualizarTablero(char tablero[ALTO][ANCHO]) {
unsigned int i,j;
clrscr();
for (i=0;i<ALTO;i++) {
for (j=0;j<ANCHO;j++)
putchar(tablero[i][j]);
putchar('\n');
}
}

/* etc... */

Y me gustaría saber si esta forma es "buena" ya que tengo entendido que
los arrays se deben pasar a las funciones como lo que son, es decir
punteros al tipo del array. ¿Qué inconvenientes tiene esta forma de
pasar arrays a las funciones? Gracias.
Julián Albo
2004-02-23 06:51:18 UTC
Permalink
Post by eoliTH
void VisualizarTablero(char tablero[ANCHO][ALTO]);
(snip)
Post by eoliTH
void VisualizarTablero(char tablero[ALTO][ANCHO]) {
Y me gustaría saber si esta forma es "buena" ya que tengo entendido que
Pues así de un vistazo, lo que se dice muy buena no parece ;)
Post by eoliTH
los arrays se deben pasar a las funciones como lo que son, es decir
punteros al tipo del array. ¿Qué inconvenientes tiene esta forma de
Tal y como lo haces ya estás pasando un puntero, la declaración de
tablero es equivalente a char * tablero [ALTO].

Salu2
Seba F
2004-02-26 23:18:31 UTC
Permalink
Post by eoliTH
Hola, tengo una función que lo que hace es mostrar un array por pantalla
#define ANCHO 10
#define ALTO 8
/* etc... */
void VisualizarTablero(char tablero[ANCHO][ALTO]);
int main () {
char tablero[ALTO][ANCHO];
/* etc... */
VisualizarTablero(tablero);
/* etc... */
return 0;
}
void VisualizarTablero(char tablero[ALTO][ANCHO]) {
unsigned int i,j;
clrscr();
for (i=0;i<ALTO;i++) {
for (j=0;j<ANCHO;j++)
putchar(tablero[i][j]);
putchar('\n');
}
}
/* etc... */
Y me gustaría saber si esta forma es "buena" ya que tengo entendido que
los arrays se deben pasar a las funciones como lo que son, es decir
punteros al tipo del array. ¿Qué inconvenientes tiene esta forma de
pasar arrays a las funciones? Gracias.
No se a que te referis, cuando decis si la forma es "buena".
Desde ya te digo que la forma en que lo declaraste, es
correcta. Tambien lo podrías haber declarado como
char *tablero[ALTO]

Saludos
SF.-

Loading...