Tag: 记忆视图

当C中出现数组越界时,为什么我的程序不会进入无限循环

int main(){ int i; int arr[4]; for(int i=0; i<=4; i++){ arr[i] = 0; } return 0; } 我观看了一个关于CS107(第13讲)的video,其中显示了这个例子,并告诉我为什么上面的程序会通过显示内存图导致无限循环。 arr [4]超出界限,应该导致存储i的地址,并将i的值更改回0,从而导致无限循环。 但是当我尝试使用gcc编译器在我的mac上运行它时,for循环执行(通过插入printf检查)5次。 即对于i = 0,1,2,3,4的值。