Ayuda con Arrays

Started by HenBanKeN, June 13, 2011, 06:52:11 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

HenBanKeN

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:

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

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

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

#3
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:
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:
int array[5][10];
Así, puedes hacer que array[0] sea una, array[1] sea otra, y así sucesivamente.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

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

osk

En mi manualillo está explicado...ahora no lo tengo a mano, pero está explicado

SplinterGU

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

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...