配列の長さ、たとえばint array[] = {1, 2, 3, 4}
を取得したいとします。私はそれを行うためにsizeof
を使用しました。だから、なぜsizeof(param_array)がポインタのサイズですか?
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
}
、なぜarray
のポインタのサイズを返しますlength
機能でsizeof(array)
?しかし、機能main
で動作します。
length
関数を変更して配列の長さを取得するにはどうすればよいですか?
はい、私はこれはC++の質問ですけど、それは同様にCに関するとても有用な情報が含まれていますhttp://stackoverflow.com/questions/4810664/how-do-i-use-arrays-in -c – chris