Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Milton884 on August 24, 2012, 11:39:53 PM

Title: Limite de un Array
Post by: Milton884 on August 24, 2012, 11:39:53 PM
Hola que tal, nuevamente recurriendo a los experimentados jej. Bueno resulta que busque en:
http://wiki.bennugd.org/index.php
Alguna funcion que diga el tope de un Array... es decir, si declaro un array de 5 posiciones, que me diga con una funcion (pasando el array) , que el tope es 5.. lo aclaro bien por las dudas porque a veces puedo no explicarme bien.


Bueno espero sus solidarias ayudas, muchas gracias desde ya!!
Title: Re:Limite de un Array
Post by: SplinterGU on August 24, 2012, 11:56:52 PM
cantidad totales:

sizeof(array)/sizeof(array[0])

ultimo indice

sizeof(array)/sizeof(array[0]) - 1
Title: Re:Limite de un Array
Post by: Milton884 on August 24, 2012, 11:59:06 PM
Quote from: SplinterGU on August 24, 2012, 11:56:52 PM
cantidad totales:

sizeof(array)/sizeof(array[0])

ultimo indice

sizeof(array)/sizeof(array[0]) - 1


Gracias Splinter, veo que habia que rebuscarsela como tal hiciste. Te agradezco por la solucion.


Saludos y gracias comunidad.
Title: Re:Limite de un Array
Post by: Milton884 on August 25, 2012, 12:15:42 AM
Estoy haciendo una funcion, donde se pasa de Parametro un array de tipo Char, para luego formar una Cadena String, y devolverla. Pero me tira el error: Not an array or struct array( token error: "[") en linea 121. Dejo la funcion:


function BuildString(char chrArray);
     private
           int i;
           string strFullString;
           int tope;
     
     BEGIN
           tope=sizeof(chrArray)/sizeof(chrArray[0]); //ESTA ES LA LINEA 121
     
           for(i=0;i<=tope;i++)
                  strFullString=strFullString + chrArray;
           end
     
          return strFullString;
     END
Title: Re:Limite de un Array
Post by: KeoH on August 25, 2012, 01:20:30 AM
Quote from: SplinterGU on August 24, 2012, 11:56:52 PM
cantidad totales:

sizeof(array)/sizeof(array[0])


OSTIAS!!! no se me habia ocurrido eso para saber el tamaño de un array xDDDDDDDDD y yo liandola parda para hacerlo jajajaja joer tengo mucho q aprender jajajajaja
Title: Re:Limite de un Array
Post by: Milton884 on August 25, 2012, 02:06:12 AM
Igual anda mal, Splinter me dijo que sizeof(chrArray)/sizeof(chrArray[0]), daria el numero de elementos del array, y chrArray en mi caso tiene 6 Elementos.
Estara mal la formula?
Title: Re:Limite de un Array
Post by: SplinterGU on August 25, 2012, 03:09:53 AM
Quote from: Milton884 on August 25, 2012, 12:15:42 AM
Estoy haciendo una funcion, donde se pasa de Parametro un array de tipo Char, para luego formar una Cadena String, y devolverla. Pero me tira el error: Not an array or struct array( token error: "[") en linea 121. Dejo la funcion:


function BuildString(char chrArray);
     private
           int i;
           string strFullString;
           int tope;
     
     BEGIN
           tope=sizeof(chrArray)/sizeof(chrArray[0]); //ESTA ES LA LINEA 121
     
           for(i=0;i<=tope;i++)
                  strFullString=strFullString + chrArray;
           end
     
          return strFullString;
     END


es que esto que se pasa por parametro

function BuildString(char chrArray);

no es un array

1) le estas pasando un char (1 byte), no un array
2) no se pueden pasar arrays por parametro, cuando lo haces se pasan (automaticamente) como punteros
Title: Re:Limite de un Array
Post by: SplinterGU on August 25, 2012, 03:11:03 AM
Quote from: Milton884 on August 25, 2012, 02:06:12 AM
Igual anda mal, Splinter me dijo que sizeof(chrArray)/sizeof(chrArray[0]), daria el numero de elementos del array, y chrArray en mi caso tiene 6 Elementos.
Estara mal la formula?

la formula esta bien, lo que esta mal es usarlo con un supuesto array pasado por parametro, no se pueden pasar arrays por parametros, por lo menos no como arrays, sino como punteros, y ahi dejan de ser arrays.
Title: Re:Limite de un Array
Post by: Milton884 on August 25, 2012, 03:44:15 AM
entonces no hay forma de pasar un Array por parametro?¿ Pq en mi caso es algo que realmente necesito hacer. Asi si lo puedo pasar:
function string BuildString(char pointer chrArray);


Poniendo pointer , asi se pasa. pero como decis vos como puntero...