4 つの要素を持つ配列をint
関数に渡してsizeof(array)/sizeof(array[0])
いますが、要素が少ないと言っています。
何が起こっているかの例を次に示します。
int
main() {
// declaring literal array
int array[] = {1,2,3,5};
// prints 16/4 (correct output for 4 elements)
printf("%d/%d\n", sizeof(array), sizeof(array[0]));
function(array);
return 0;
}
void
function(int array[]) {
// printing 8/4 instead of 16/4
printf("%d/%d\n", sizeof(array), sizeof(array[0]));
}