Я хочу получить длину массива, скажем int array[] = {1, 2, 3, 4}
. Я использовал sizeof
для этого.
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
}
Итак, почему функция sizeof(array)
in length
возвращает размер указателя array
? Но в функции main
он работает.
И как мне изменить функцию length
, чтобы получить длину массива?