我想知道,Intel C++ 编译器是否提供边界检查?十年来,我正在处理大量不断发展的代码,并且迫切需要调试和重构。我需要任何我能得到的帮助。
英特尔的编译器有多个边界检查选项。 例如。
check-pointers, Qcheck-pointers 确定编译器是否通过指针检查内存访问的边界。
C 数组从根本上被破坏了,你无法可靠地对它们进行边界检查。 编译器也不能。 然而,Intel 的 C++ 编译器当然可以编译向量类。 打开迭代器调试,使用 at() 访问器。
如果您使用的是 Linux 或 OS X,valgrind 可以帮助您找到与内存访问相关的错误。它不支持 C++,因此将其输出与您的代码相匹配可能需要一些工作。