访问数组越界没有错误,为什么?
我在C ++程序中为这样的边界分配值:
#include <iostream>using namespace std;int main(){ int array[2]; array[0] = 1; array[1] = 2; array[3] = 3; array[4] = 4; cout << array[3] << endl; cout << array[4] << endl; return 0;}
程序打印3
和4
。应该是不可能的。我正在使用g ++ 4.3.3
这是编译和运行命令
$ g++ -W -Wall errorRange.cpp -o errorRange $ ./errorRange34
只有在分配时才array[3000]=3000
会给我一个分段错误。
如果gcc没有检查数组边界,我怎么能确定我的程序是否正确,因为它可能会导致一些严重的问题?
我用上面的代码替换了
vector<int> vint(2);vint[0] = 0;vint[1] = 1;vint[2] = 2;vint[5] = 5;cout << vint[2] << endl;cout << vint[5] << endl;
而且这个也没有产生任何错误。
杨__羊羊
萧十郎
数组越界问题
越界报错问题
请问这个数组越界该怎么处理?
请问这个数组越界该怎么处理?