c++ 配列の要素数に関して
お世話になります。
c++の配列についてよくわからない点が出てきました。
以下のようにコードを書きました。以下のコードで配列にどのような
値が入っているのかを調べようと思いました。
#include<iostream>
const int N = 5;
main(){
int i=0,a[N];
for (i=0;i<=N;i++){
a[i] = i;
}
for(i=0;i<=N;i++){
std::cout << i <<' '<< a[i] << '\n';
}
std::cout << '\n';
}
そして結果が以下のように出力されました。
0 0
1 1
2 2
3 3
4 4
5 5
* stack smashing detected *: ./a.out terminated
中止 (コアダンプ)
このaには出力の結果から{0,1,2,3,4,5}が入っているようですが、
しかしaの要素数は5ですからaに5が入るのはおかしいような気がします。
入るのがおかしい値が、aに入っている理由について教えていただけましたら
幸いです。また中止(コアダンプ)が出てしまう理由も伺いたいです。
よろしくお願いいたします。