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?
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.
Genial! No me avive de usar un puntero, lo voy a probrar, gracias...
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.
La cuestion aqui seria saber que tamaño tiene el array si se lo estas pasando como puntero.
No entiendo a que te referis, funciona bien con cualquier tamaño de puntero, aun sin declarar la longitud cuando lo llamas...
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.