Intel C++ 编译器有边界检查吗?

问题描述 投票:0回答:3

我想知道,Intel C++ 编译器是否提供边界检查?十年来,我正在处理大量不断发展的代码,并且迫切需要调试和重构。我需要任何我能得到的帮助。

c++ intel icc bounds-checker
3个回答
4
投票

英特尔的编译器有多个边界检查选项。 例如。

check-pointers, Qcheck-pointers 确定编译器是否通过指针检查内存访问的边界。

http://software.intel.com/sites/products/documentation/doclib/iss/2013/compiler/cpp-lin/GUID-35036DDA-62B4-402F-8A21-1201C2706BF3.htm


2
投票

C 数组从根本上被破坏了,你无法可靠地对它们进行边界检查。 编译器也不能。 然而,Intel 的 C++ 编译器当然可以编译向量类。 打开迭代器调试,使用 at() 访问器。


1
投票

如果您使用的是 Linux 或 OS X,valgrind 可以帮助您找到与内存访问相关的错误。它不支持 C++,因此将其输出与您的代码相匹配可能需要一些工作。

© www.soinside.com 2019 - 2024. All rights reserved.