避免"索引越界"错误的规则如下(针对C++):
不要使用静态或动态分配的数组,改用array或vector模板
不要使用带方括号的new和delete操作符,让vector模板为多个元素分配内存
使用scpp::vector代替std::vector,使用scpp::array代替静态数组,并打开安全检查(自动在使用下标访问提供了索引边界检查)
C++中创建类型T的对象的数组方式如下:
#define N 10 T static_arr[N]; //数组长度在编译时已知 int n=20; T* dynamic_arr=new T[n]; //数组长度在运行时计算 std::vector<T> vector_arr; //数组长度在运行时进行修改