#define N 5
int a[N];
for (int i = 0; i < N; i++) a[N] = i; // 寫入 a[5] 越界
for (int i = 0; i < N; i++) printf("%5d", a[N]); // 讀取 a[5] 越界
緩衝區 'a' (大小 20 位元組) 將溢出;4 位元組將在偏移 20 開始寫入
a 為 int[5],佔 20 位元組(索引 0~4)。a[5] 位於偏移 20,屬於緩衝區外。Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted.
a[N] 優化為常數存取,或恰好覆蓋了迴圈變數 i 導致迴圈提前結束並印出殘留值。for (int i = 0; i < N; i++) a[i] = i;
for (int i = 0; i < N; i++) printf("%5d", a[i]);
陣列索引合法範圍 0 ~ N-1。a[N] 為越界存取,導致緩衝區溢出警告、執行時棧損毀檢測失敗,輸出結果不可信。務必嚴格檢查迴圈邊界。