13/04/2014, 15:20
|
| | | Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 11 años, 1 mes Puntos: 38 | |
Respuesta: Como contar el total de items en un array Lo que dice CalgaryCorpu es correcto.
En tu ejemplo creas un array de 5 enteros. ¿Como espera que te devuelva 4?Eso seria incorrecto.
sizesizeof() devuelve el tamaño que ocupa en memoria de una variable o cualquier objeto como una estructura.
Por ejemplo un entero en mi ordenador ocupa 4bytes cosa que puede variar en otro ordenador. Para saber puedes usar la sentencia sizesizeof(int) que te dio Cal que va retornar el tamaño que tiene.
Bien ahora digamos que me devuelve 4bytes para nuestro ejemplo.
Un array no es mas que un conjunto de variables consecutivos en la memoria del ordenador.
El array en si es un puntero que apunta a el primero de los enteros, pero realmente son enteros lo que contiene.
Si un entero tiene 4bytes cuanto debería tener 2 enteros pues tiene 8bytes.
Si usas sizeof(array) obtienes la cantidad de enteros pero no su cantidad en numero sino en bytes.
Si en tu ordenador un entero tiene 4bytes pues lo divido por 4 me va devolver 1.
entonces la sentencia de sizeof(array) / sizeof(int) en realidad es eso: El tamaño del array en bytes dividido por el tamaño de un entero(4bytes en nuestro caso).
Así se obtiene el tamaño.
Y ahora sobre si puedes aumentar el tamaño del array pues como comenta patilanz o no me acuerdo, no se puede.
Cuando creas un array lo creas en el Heap o mas conocido como la pila no se cambian ni se destruyen. Las variables creadas en la pila se destruyen cuando la función en cuestión termina y es cuando la memoria se libera, y lo hace de forma automatica.
Si quieres poder aumentar o reducir el tamaño de un array debes usar el free storage o memoria dinámica como quieras llamar XDD. Pero eso ya entra en temas de punteros.
Escucha con el oído Manuel que hay buenos consejos aquí =D
Suerte!
PD: para poder cambiar de tamaño puedes usas otros sistemas como por ejemplo vectores, pero solo en cpp creo :D |