Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Outlaw on October 09, 2010, 06:21:16 AM

Title: Pasar un array como parametro de un process
Post by: Outlaw on October 09, 2010, 06:21:16 AM
Hola a todos! Estoy tratando de ver como hacer para pasarle como parametro a una funcion, no un dato, sino un array (o lista) seria asi

Process Ejemplo(dato, array[])

Me da:
error: Parameter type invalid ("ARRAY")

¿Tal vez estoy tratando de hacer algo que no se puede?
Title: Re: Pasar un array como parametro de un process
Post by: Danielo515 on October 09, 2010, 11:11:25 AM
Si, le estás intentando pasar un tipo de dato que no corresponde con la declaración.
De todos modos deberías decir que tipo de dato es el array.

proceso(int dato, int array[])


Y aún así, no se si te dejaría trabajar con el. Puedes probar también con un puntero que a fin de cuentas es lo mismo

proceso(int dato, pointer array)
begin
x=*array;
array++;
y=*array;
.
.
.
end

*array es la forma de acceder al contenido del puntero (que no al propio puntero) y array++ es para pasar al siguiente registro.
Title: Re: Pasar un array como parametro de un process
Post by: Outlaw on October 09, 2010, 12:31:38 PM
Genial! No me avive de usar un puntero, lo voy a probrar, gracias...
Title: Re: Pasar un array como parametro de un process
Post by: Drumpi on October 09, 2010, 12:52:06 PM
Creo que no se podían pasar arrays como parámetro (y obviamente tampoco devolverlos).
Se hace siempre con punteros (mientras el proceso que creó el array siga vivo), o bien mediante variables globales.
Title: Re: Pasar un array como parametro de un process
Post by: JaViS on May 25, 2011, 03:14:13 PM
La cuestion aqui seria saber que tamaño tiene el array si se lo estas pasando como puntero.
Title: Re: Pasar un array como parametro de un process
Post by: Outlaw on May 25, 2011, 03:45:07 PM
No entiendo a que te referis, funciona bien con cualquier tamaño de puntero, aun sin declarar la longitud cuando lo llamas...
Title: Re: Pasar un array como parametro de un process
Post by: SplinterGU on May 25, 2011, 04:14:04 PM
los array se pasan como punteros, lo que quiere decir JaViS, es que como se pasa como puntero, desde la funcion no sabes el tamaño del array. por eso se debe trabajar con tamaño conocido o agregando un parametro a tu funcion que indique la cantidad de elementos del array.