可能重复:
C++ 越界访问数组没有给出错误,为什么?
我在 Windows 上使用 Qt creator 时经常遇到数组问题。当我的程序尝试访问一个不存在的内存单元时,会出现随机崩溃,因此很难调试。
当我的程序访问不存在的内存单元时,是否有任何库或选项可以检查以停止程序?
例子:
int * toto = new int [4];
toto[6] =2;
导致提到的随机行为。
我在使用 Qt creator 4.8.1 的 Windows 7 上。
可能重复:
C++ 越界访问数组没有给出错误,为什么?
我在 Windows 上使用 Qt creator 时经常遇到数组问题。当我的程序尝试访问一个不存在的内存单元时,会出现随机崩溃,因此很难调试。
当我的程序访问不存在的内存单元时,是否有任何库或选项可以检查以停止程序?
例子:
int * toto = new int [4];
toto[6] =2;
导致提到的随机行为。
我在使用 Qt creator 4.8.1 的 Windows 7 上。
正如@axeoth 在评论中提到的,没有办法检查索引是否超出 C++ 数组的范围。
如果您正在寻找特定于 Qt 的容器类,您可以查看QList<T>
或QVector<T>
.
您可以在Qt Container Classes中找到更多详细信息。