#include
#define N 5
main()
{
int i,a[N];
for(i=0;i<N;i++) a[N]=i;
for(i=0;i<N;i++) printf("%5d",a[N]);
printf("\n");
}
在第六行 警告 1 warning C4789: 緩沖區“a”(大小為 20 字節)將溢出;4 字節將在偏移 20 時開始寫入
Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted.
可是運行時有結果啊 4 4 4 4 4 而且是正確的,這是為什麼呢?為什麼會溢出呢?損壞的到底是什麼空間?
a[5]說數組裡面有5個元素,分別是a[0]、a[1]、a[2]、a[3]、a[4].
a[5]這個元素不存在