Autor Tema: Ayuda con Arrays  (Leído 1123 veces)

HenBanKeN

  • Jr. Member
  • **
  • Mensajes: 58
  • Karma: 1
  • Jo!
Ayuda con Arrays
« en: Junio 13, 2011, 06:52:11 am »
He buscado en tutoriales y manuales al respecto, y no he encontrado respuesta.

Tengo un array global, y quiero pasárselo de argumento a un proceso.
En la definición de ese proceso, cómo debería escribir los argumentos para que el proceso pueda recibir un array?

He intentado con:

Código: [Seleccionar]
PROCESS proceso(byte algo[])
Pero me dice que el nombre del parámetro es inválido.
He probado quitando los corchetes, y en definitiva dentro del proceso me es imposible trabajar con el arreglo porque dice que simplemente "no es un arreglo o estructura".

Se pueden realmente pasar arrays como argumento? Como se hace?
Aún aprendiendo a manejar mis herramientas...

Yawin

  • Hero Member
  • *****
  • Mensajes: 1088
  • Karma: 44
  • La primera persona que ha "demosceneado" en Bennu.
Re: Ayuda con Arrays
« Respuesta #1 en: Junio 13, 2011, 06:57:20 am »
verás, si la array es global, no necesitas pasarla como argumento, porque todos los procesos pueden acceder a ella. Aun así, si quieres apsarla, nunca lo he hecho en Bennu, pero en C creo que lo que enviabas había que recibirlo en un puntero.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

HenBanKeN

  • Jr. Member
  • **
  • Mensajes: 58
  • Karma: 1
  • Jo!
Re: Ayuda con Arrays
« Respuesta #2 en: Junio 13, 2011, 07:02:28 am »
Bueno, es que necesito pasarla porque el proceso debe recibir una, de seis posibles variables globales, siendo todos arrays.

Punteros =O puede ser una alternativa... Trataré de recordar lo que he aprendido sobre C

gracias xD karma por la idea!
Aún aprendiendo a manejar mis herramientas...

Yawin

  • Hero Member
  • *****
  • Mensajes: 1088
  • Karma: 44
  • La primera persona que ha "demosceneado" en Bennu.
Re: Ayuda con Arrays
« Respuesta #3 en: Junio 13, 2011, 07:09:27 am »
A ver que me entere yo, tienes 6 arrays declaradas en el global y tienes que decirle a un proceso cual tiene que mirar??

Pues muy facil, pasale un valor entre 1 y 6, y haz un switch que sea:
Código: [Seleccionar]
switch(variable):
   case 1:
       array1[];
   end
   case 2:
       array2[];
   end
   case 3:
       array3[];
   end
   case 4:
       array4[];
   end
   case 5:
       array5[];
   end
   case 6:
       array6[];
   end
end
____________________________________________

Edit:
O sino, haz una array de arrays. Es decir:
Código: [Seleccionar]
int array[5][10];Así, puedes hacer que array[0] sea una, array[1] sea otra, y así sucesivamente.
« última modificación: Junio 13, 2011, 07:12:20 am por yawin »
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

osk

  • Hero Member
  • *****
  • Mensajes: 516
  • Karma: 52
Re: Ayuda con Arrays
« Respuesta #4 en: Junio 13, 2011, 09:07:36 am »
En mi manualillo está explicado...ahora no lo tengo a mano, pero está explicado

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12905
  • Karma: 378
Re: Ayuda con Arrays
« Respuesta #5 en: Junio 13, 2011, 03:57:19 pm »
los arrays se pasan como punteros automaticamente, solo debes declarar que la funcion recibe un puntero.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

HenBanKeN

  • Jr. Member
  • **
  • Mensajes: 58
  • Karma: 1
  • Jo!
Re: Ayuda con Arrays
« Respuesta #6 en: Junio 14, 2011, 01:36:59 pm »
Muchas gracias, Osk, y Splinter.

Osk, busqué en tu manual pero creo que no fue lo suficiente. (aunque debo decirte que me ha servido de gran ayuda ese manual)

De todas formas, al final usé punteros y no hubo ningún problema. Ahora me queda claro cómo enfrentarme a estos casos desde ahora =) muchas gracias!
Aún aprendiendo a manejar mis herramientas...