c++ 数组索引越界检查
用 c++ 编写了一些程序,发现 c++ 不会自动检查数组的索引越界问题。有时候程序运行错误,提示的错误信息莫名其妙,但很可能是某个数组越界的问题。
例如:
#include <iostream>
int main() {
double arr[5] = {1.1, 2.2, 3.3, 4.4, 5.5};
// 错误:访问越界
std::cout << arr[10] << std::endl;
return 0;
}
在 C++ 中,数组不会进行边界检查,如果 arr[10] 访问了未分配的内存,就可能会得到 随机的、异常大的值,甚至可能导致程序崩溃。
网上查看的一些检查数组越界的方法似乎不太好用,感觉调试时只能慢慢用 try catch 语句发现到底是哪个数组越界了。