数组越界后,该如何处理

数组越界后
#include<stdio.h>

int main(void)
{

int sum[2];

sum[0] = 1;
sum[1] = 1;
sum[2] = 1;
sum[3] = 3;
sum[10] = 10;

printf("%d\n",sum[2]);
printf("%d\n",sum[3]);
printf("%d\n",sum[10]);
return 0;
}
运行结果。
o@o:~/桌面$ ./s
1
3
10
。。。这就是数组越界后的后果》/? 求解。

------解决方案--------------------
合乎逻辑

地址sum[10] = sum+10*sizeof(int),给这个地址赋值为10,然后又取出来printf,肯定没变。