int array[3][3]; // 合法下標 0~2
for (i = 0; i <= 3; i++) // 錯誤:i 最大為 3,越界
for (j = 0; j <= 3; j++) // 錯誤:j 最大為 3,越界
scanf("%d", &array[i][j]);
陣列大小 N → 合法下標 0 ~ N-1 → 迴圈條件 i < N(非 <=)。
// 修正後
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
scanf("%d", &array[i][j]);
double array[19]; // 大小 19,下標 0~18
for (i = 0; i <= 19; i++) // 錯誤:i=19 越界
scanf("%lf", &array[i]);
修正:for (i = 0; i < 19; i++) 或宣告 array[20] 配合 i < 20。
-Warray-bounds(GCC/Clang)或 /RTCs(MSVC 運行時檢查)for (int i = 0; i < SIZE; ++i),SIZE 為常數/巨集越界訪問屬未定義行為,輕則輸出亂碼,重則程式崩潰或安全漏洞。