-1

我在 Ubuntu 上编写和运行的 C++ 项目在 Windows 上运行时返回异常“向量下标超出范围”。我使用 Windows 7 和 Visual C++ 2008 Express。

我希望这对某人有意义。

4

2 回答 2

1

Microsoft 提供的 STL 版本带有检查迭代器,当在调试模式下运行时,它可以确保您的向量索引在范围内。默认情况下,在 GCC 中不进行此类检查。

于 2013-01-08T00:26:40.573 回答
1

您的代码几乎肯定包含未定义的行为。在这种情况下,实现几乎可以自由地做它想做的任何事情。看来gcc基本上已经忽略了这个问题,所以并不明显。VC++ 已经在您的代码中内置了足够多的自我监控功能来发现问题并告诉您问题。

下一步几乎取决于您:在您的代码中找到问题并修复它。不幸的是,由于您没有发布任何代码,因此基本上不可能就您应该做什么或如何做提供更详细的建议。关于我能想到的唯一提示是 VC++ 中的调试器确实有一个很好的堆栈跟踪功能,所以如果你在调试器下运行代码并且它失败了,很容易回到堆栈找到调用的代码检测到问题的函数(调用函数等)。

于 2013-01-08T01:27:08.983 回答