SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Dunadan en Viernes 15 de Julio de 2005, 19:11

Título: Array Bidimensional Como Parámetro
Publicado por: Dunadan en Viernes 15 de Julio de 2005, 19:11
Buenas, mi problema es el siguiente, cuando defino el prototipo de una función que tome como parámetro un array con 2 dimensiones (aunque supongo que con más dimensiones pasa lo mismo)¿debo inicializarlo si o si en ese momento? Ya que intente de dejarlo vacío pero me da un error diciendo que el valor es desconocido o cero. Si lo inicializo no hay problema, pero no me sirve inicializarlo en ese momento.  Espero haber sido claro y gracias de antemano.

Saludos.
Título: Re: Array Bidimensional Como Parámetro
Publicado por: fuhrer en Viernes 15 de Julio de 2005, 21:36
Hola que tal.

Me imagino que con eso de inicializarlo te refieres a definir el tamaño que tendra, si es eso, debes definir el tamaño para la segunda dimension y las siguientes, para la primera no es necesario que lo hagas, espero esto te ayude.

Hasta luego.
Título: Re: Array Bidimensional Como Parámetro
Publicado por: Dunadan en Sábado 16 de Julio de 2005, 03:44
Gracias fuhrer por la pronta respuesta; el código que yo leí como ejemplo en el prototipo no ponía nada como argumento en ninguna dimensión de la matriz, sino que después al final cuando va a escribir el cuerpo de la función(su declaración creo que es) hace lo que vos dijiste, de pasar como argumento sólo la segunda dimensión, para que el compilador sepa cuantos elementos tiene cada fila. Una pregunta de paso, cuando son más dimensiones ¿se declaran todas menos la primera?

Saludos.

Agregado: Para no hacer otro post quiero plantear algo a ver si me lo explican, es referente a los argumentos que acepta la función main, argc es la cantidad de parámetros,argv es un array de cadenas de caracteres que es lo que se ingresa cuando se llama al programa desde el S.O., pero lo que me queda inconcluso es el argumento Arge, que según la poca explicación que daba de donde leí, dice que es igual al argv, o sea un array de cadena de caracteres, pero que contiene las cadenas del entorno.  A que se refiere con esto último? Espero no molestarlos mucho, gracias.
Título: Re: Array Bidimensional Como Parámetro
Publicado por: chuidiang en Viernes 29 de Julio de 2005, 12:05
Hola:

arge es un array de cadenas con las variables de entorno, terminado en NULL. Ahi tienes cosas como

"PATH=C:\ ... "
"HOME=C:\Documents... "
etc, etc.

Para leerlas, debes hacer un bucle como este

int i=0;
while (arge!=NULL)
{
...
i++;
}

Se bueno.
Título: Re: Array Bidimensional Como Parámetro
Publicado por: hidaki en Viernes 19 de Agosto de 2005, 09:51
Dunadan!, no sé por que parte de la programación andarás Vos, pero si estás empezando, vas por el camino correcto del aprendizaje, si indagás un poco más, solo podrás contestar la pregunta que has echo de arreglos multidimensionales.
Te recomiendo que leas unos textos sobre punteros en C, echale una mirada al siguiente enlace:

http://pweb.netcom.com/~tjensen/ptr/pointers.htm (http://pweb.netcom.com/~tjensen/ptr/pointers.htm)

 Son de un Tío, que escribio/recopilo info al respecto, están buenísimos, imperdibles, despeja todas las dudas a los que se las tengan que ver con punteros, el problema es que están en Inglés, no encontré una versión en Español.
 La verdad valdría la pena traducir eso y hacerlo llegar a su creador (Él sugiere eso), y de nuevo, que lo lean TODOS los que andan dando vueltas por estos foros, perdidos con los punteros...
 Para completarla mirá:
http://www.brigsoft.com/edu/LovelyPointers...elyPointers.htm (http://www.brigsoft.com/edu/LovelyPointers/LovelyPointers.htm)
en su sección:  "4. Pointers and arrays"
lo se siempre, una imagen vale por mil palabras.

 Un consejo, si lo tuyo es sacar adelante un programa colmado de llamadas a funciones cuyos parámetros son arreglos multidimensionales, lo que has propuesto, no es la mejor estrategia, lo que se emplea son punteros a punteros, o punteros a estructuras, pues se emplea dimensionamiento dinámico de los array's, así funkan las librerias picantes, p.e. las GNU-GSL, echale una mirada a su manual de referencia en la sección matrices (y vectores), y operaciones con estas entidades.
     Bye!!    ***Hidaki