Limite de un Array

Started by Milton884, August 24, 2012, 11:39:53 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Milton884

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

SplinterGU

cantidad totales:

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

ultimo indice

sizeof(array)/sizeof(array[0]) - 1
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Milton884

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.

Milton884

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

KeoH

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

Milton884

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?

SplinterGU

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
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

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.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Milton884

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