関数の引数に配列を渡していますが、関数の本体で使用して最後の要素にアクセスしようとすると、arr[-1]
ガベージが発生します。誰かが私になぜそうなのか説明できますか?
コードは次のとおりです。
#include<stdio.h>
using namespace std;
int binsearch(int nelement, int arr[],int maxsize)
{
int low = 0;
int high = maxsize;
printf("%d",arr[-1]);
return 0;
}
void main()
{
int arr[] = {1,2,3,4,5,6,7,8,9};
int flag = 3;
printf("%d\n",arr[8]);
flag = binsearch(flag,arr,sizeof(arr));
}
出力は次のとおりです。
9
-858993460