我在完整的参考书中读到了这一段
C 对数组没有边界检查。您可以覆盖数组的任一端并写入其他变量的数据,甚至写入程序的代码。作为程序员,您的工作是在需要的地方提供边界检查。例如,这段代码编译不会出错,但不正确,因为for循环会导致数组计数溢出。
#include <stdio.h> int main(){ int count[10], i; /* this causes count to be overrun */ for(i=0; i<15; i++) count[i] = i; for(i=0; i<15; i++) printf("%d ",count[i]); return 0; }
当我尝试它给我的代码时
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
然后屏幕上显示运行时错误。错误是
array.exe 已停止工作
我的问题是:该错误的类型是什么?这是否意味着我的 IDE 会检查数组的边界?