| |||
sizeof me funciona mal? Hola, vereis tengo una duda es que resulta que a mi sizeof se me comporta de diferente manera dependiendo de si lo utilizo dentro de una funcion o no. Por ejemplo si en main declaro un array de int de 10 elementos "int array[10];" y hago "cout << sizeof(array) / sizeof(int);" me da el numero de elementos del array sin problema. Pero si lo hago desde una funcion por ejemplo "LongitudArray(int array[]) { return sizeof(array) / sizeof(int); }" cuando en main hago "cout << LongitudArray(array);" en lugar de devolverme el numero de elementos como seria de esperar, me devuelve 1. Que es lo que esta pasando? es que no hay forma de que sizeof se comporte de forma normal usandola dentro de una funcion? gracias |
| |||
Respuesta: sizeof me funciona mal? Hola codigo333. Cuando se envía un arreglo como parámetro, se está enviando un apuntador al primer elemento del mismo. Es decir que cuando aplicas la función sizeof al parámetro, no estas obteniendo el tamaño del arreglo sino del apuntador. Tal vez la situación se vea mas clara declarando la función de este modo:
Código C++:
La función no posee información sobre el tamaño del arreglo que se le envía como argumento.Ver original Saludos. :) |
Etiquetas: |