Autor Tema: Limite de un Array  (Leído 1736 veces)

Milton884

  • Full Member
  • ***
  • Mensajes: 190
  • Karma: 3
Limite de un Array
« en: Agosto 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!!

SplinterGU

  • Administrator
  • *****
  • Mensajes: 12990
  • Karma: 379
Re:Limite de un Array
« Respuesta #1 en: Agosto 24, 2012, 11:56:52 pm »
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

  • Full Member
  • ***
  • Mensajes: 190
  • Karma: 3
Re:Limite de un Array
« Respuesta #2 en: Agosto 24, 2012, 11:59:06 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

  • Full Member
  • ***
  • Mensajes: 190
  • Karma: 3
Re:Limite de un Array
« Respuesta #3 en: Agosto 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

KeoH

  • Hero Member
  • *****
  • Mensajes: 1170
  • Karma: 17
Re:Limite de un Array
« Respuesta #4 en: Agosto 25, 2012, 01:20:30 am »
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

  • Full Member
  • ***
  • Mensajes: 190
  • Karma: 3
Re:Limite de un Array
« Respuesta #5 en: Agosto 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?

SplinterGU

  • Administrator
  • *****
  • Mensajes: 12990
  • Karma: 379
Re:Limite de un Array
« Respuesta #6 en: Agosto 25, 2012, 03:09:53 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

  • Administrator
  • *****
  • Mensajes: 12990
  • Karma: 379
Re:Limite de un Array
« Respuesta #7 en: Agosto 25, 2012, 03:11:03 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

  • Full Member
  • ***
  • Mensajes: 190
  • Karma: 3
Re:Limite de un Array
« Respuesta #8 en: Agosto 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...