Linux GCC 对数组到底是怎么处理的?
int main(void){
int arr[5], i;
for(i = 0; i < 9; i++)
{
arr[i] = i;
printf("i = %d, arr[%d] = %d\n", i, i, arr[i]);
}
return 0;
}
当 i < 9 时,运行后并不会出错,但 >=9 时,就会出错。从安全性来说 ,应该要在 i 超过 4 的时候就应该出错了 ,但它并不出错。GCC 到底是怎么处理数组越界这问题的?