たとえば、配列の長さを取得したい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
でしょうか? しかし、 functionmain
では機能します。
length
また、配列の長さを取得するには、関数をどのように変更すればよいですか?