今天做题的时候,一个本来要存2058个数的数组被我开成了2048,但是没有爆RE,而是给了个WA。。。。后来找了好久才发现,然后就特意找了找为什么
---- 我是分割线 -----
下面我们看一下这段代码
#include <stdio.h>
int arr[5];
int main(){
for(int i=0;i<5;i++)
arr[i]=i;
for(int i=0;i<5;i++)
printf("%d ",arr[i]);
printf("\n");
for(int i=0;i<=6;i++)
printf("%d ",arr[i]);
printf("\n");
return 0;
}
一个长度只有5的数组,我去访问了arr[5]和arr[6]。理论上数组越界,程序报错。但实际上并没有,而且跑的贼溜。
甚至我们也可以赋值并访问
#include <stdio.h>
int arr[5];
int main(){
for(int i=0;i<5;i++)
arr[i]=i;
for(int i=0;i<5;i++)
printf("%d ",arr[i]);
printf("\n");
arr[