Título: Como saber el tamaño de un array de tipo int Publicado por: Blaster en 8 Noviembre 2012, 16:40 pm Estoy trabajando con un progrma que hace uso de un array de tipos entero, y necesito determinar el tamaño en base al cotenido de esta; probe con strlen pero esta solo devuelve la longitud de uno de tipo char.
Código
Aka definimos una arary de tamaño 15, pero la hemos inicializado y tiene una longitud de solo 4, pasando esto a strlen efectivamente devuelve 4; existe una funcion igual a esta para aplicarla a un entero. Desde ya mucha gracias Título: Re: Como saber el tamaño de un array de tipo int Publicado por: Pablo Videla en 8 Noviembre 2012, 16:46 pm A ver, vamos por parte, según yo, lo que estas haciendo, es calcular el largo de string, y no del arreglo del char puesto que lo has creado con 15 posiciones, por lo tanto el largo será de 15.
Si tu haces esto por ejemplo: int array[3]; array[0]=1; y haces el metodo para tomar el tamaño, va a estar ocupado solo una posicion, pero el largo del array seguira siendo 3. Si estoy equivocado, me avisan. PD: No se C / C++ pero en JAVA es asi. Título: Re: Como saber el tamaño de un array de tipo int Publicado por: do-while en 8 Noviembre 2012, 16:47 pm ¡Buenas!
Cuando declaras un vector, dentro de su ambito de uso puedes saber el tamaño con el operador sizeof, pero si utilizas un vector como parametro de una funcion no podras saber cual es su tamaño original, sizeof siempre te dara la cantidad de bytes que ocupa un puntero del tipo del vector. Si pasas un vector como parametro de una funcion y la funcion depende del tamaño del vector, tendras que añadir a la lista de parametros el tamaño. Código
A parte funcion2 me insulta por pasarle la direccion de memoria de x... ¡Saludos! PD: Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje Título: Re: Como saber el tamaño de un array de tipo int Publicado por: rir3760 en 8 Noviembre 2012, 16:55 pm A parte funcion2 me insulta por pasarle la direccion de memoria de x... Eso sucede porque en tu programa "&x" es de tipo "int (*)[10]" mientras que la función "funcion2" espera, como segundo argumento, un valor de tipo "char **":Código
Al no coincidir los tipos tu compilador genera el mensaje de error. Un saludo Título: Re: Como saber el tamaño de un array de tipo int Publicado por: Blaster en 8 Noviembre 2012, 19:31 pm Utilizando la expresion sizeof c / sizeof *c dividiendo el tamaño completo del array
entre el tamaño del primer elemento, se obtiene la longitud del array de esta forma: Código
Salida: 4 Pero sin especificar el tamaño del array ya que si lo hago me tira solo el tamaño del mismo y no los elementos que la componen De esta forma: Código Me da el valor que les comentaba que es 10, cuando el que deseo es 4. Muchas gracias a los que contestaron ;) |