在dev c++编译器中 定义一个数组a[2],里面应该有两个元素a[0]和a[1],但是我现在这样写:
int main()
{
int a[2];
a[100]=45;
printf("%d",a[100]);
system("PAUSE");
return 0;
}
a[100]早就超出a[2]的范围的,但是竟然可以使用!!!编译器也没提示出错!!!
这是为什么?
在dev c++编译器中 定义一个数组a[2],里面应该有两个元素a[0]和a[1],但是我现在这样写:
int main()
{
int a[2];
a[100]=45;
printf("%d",a[100]);
system("PAUSE");
return 0;
}
a[100]早就超出a[2]的范围的,但是竟然可以使用!!!编译器也没提示出错!!!
这是为什么?
那是不可能的 不要骗人吧! 编译时 不会出错 但运行时会出错 你访问了未知的空间
C和C++就是这样的,数组下标越界不会给出错误信息。
但是实际运行的时候,是可能出错的。