Quiero obtener la longitud de una matriz, digamos int array[] = {1, 2, 3, 4}
. Usé sizeof
para hacer eso.¿Por qué sizeof (param_array) es el tamaño del puntero?
int length(int array[])
{
return sizeof(array)/sizeof(int);
}
int main()
{
int array[] = {1, 2, 3, 4};
printf("%d\n", length(array)); // print 1
printf("%d\n", sizeof(array)/sizeof(int)); // print 4
}
Así que, ¿por qué la sizeof(array)
en función length
devuelve el tamaño del puntero de array
? Pero en la función main
, funciona.
Y, ¿cómo debo modificar la función length
para obtener la longitud de una matriz?
Sí, sé que esto es una cuestión de C++, pero contiene información muy útil respecto a C, así: http://stackoverflow.com/questions/4810664/how-do-i-use-arrays-in -c – chris