1

我的一个程序有问题,在我向程序添加更多功能后突然出现缓冲区溢出错误。错误出现在程序的最开始,该部分与我添加的新代码完全无关。在放置几个断点以缩小错误来源后,错误在下一次运行时消失了。

谁能简单地从概念上向我解释什么样的情况可能导致我遇到的问题?我不是要求您调试我的代码,而是让我了解可能发生的情况,这样我就可以避免再次遇到问题。

4

2 回答 2

1

这个错误的动态数据的气味对于它的预分配(我的意思是在编译时分配)存储数组来说变得太长了,但我认为错误消息“缓冲区溢出”只是一个巧合的红鲱鱼。作为第一步,我会尝试将所有静态数组的大小增加一倍,或者更好的是,将它们的大小增加一个很大的数字——比如 100,000——然后我会重新运行该程序。如果程序运行正常,那么您可以通过代码找到有问题的部分。

如果程序仍然崩溃,那么您将面临一个更难找到的错误。

高温高压

——皮特

于 2011-01-31T23:16:26.547 回答
0

用 ASSERT 填充你的代码!从地狱般的经验中吸取了教训,这是我现在在处理缓冲区处理代码时自然而然地做的事情。

于 2011-02-01T00:25:21.820 回答