什么是检测我覆盖数组绑定的错误的好方法?
int a[100];
for (int i = 0; i<1000; i++) a[i] = i;
Run Code Online (Sandbox Code Playgroud)
收集人们在其经验中用于发现此类错误的不同策略列表将会很有帮助.例如,从内存故障点开始执行回溯(对我来说,这通常不起作用,因为堆栈已损坏).
使用std :: vector,并使用.at() - 它总是检查范围 - 或使用[]并打开编译器中的范围检查.
编辑 - 如果你是一个c ++编译器,没有理由不使用std :: vector.它不比数组慢(如果你关闭边界检查)并且你可以使用与.size()和[]完全相同的循环 - 你不需要被复杂的迭代器吓跑
| 归档时间: |
|
| 查看次数: |
819 次 |
| 最近记录: |