Loops 缓冲区溢出应该在什么时候发生?

Loops 缓冲区溢出应该在什么时候发生?,loops,for-loop,overflow,buffer,Loops,For Loop,Overflow,Buffer,昨天我在节目中遇到了一个我完全弄不懂的错误。在使用该软件数小时后,它突然崩溃,并向我显示以下类型的消息(可能不一样,因为我只能复制一次,没有保存消息-但这是一个BEX错误,使用了另一个代码段,请参阅下文): 因此,当我发现这是一个缓冲区溢出错误时,我试图找出缓冲区溢出会发生在哪里。我提出了一个for循环,它不应该工作,并且会导致这样的错误。问题的类型大致如下: int bob=0;int pop; for(pop=0;pop<bob;pop++){cout<<pop;} in

昨天我在节目中遇到了一个我完全弄不懂的错误。在使用该软件数小时后,它突然崩溃,并向我显示以下类型的消息(可能不一样,因为我只能复制一次,没有保存消息-但这是一个BEX错误,使用了另一个代码段,请参阅下文):

因此,当我发现这是一个缓冲区溢出错误时,我试图找出缓冲区溢出会发生在哪里。我提出了一个for循环,它不应该工作,并且会导致这样的错误。问题的类型大致如下:

int bob=0;int pop;
for(pop=0;pop<bob;pop++){cout<<pop;}
intbob=0;int-pop;

对于(pop=0;pop),在提供的示例中没有无限循环

第一次迭代之前的值为: bob=0; pop=0

由于0(pop)不小于0(bob),pop
我个人建议使用调试器。

正如我之前所说,我已经通过在for循环中编写cout命令来检查for循环是否确实在执行:显然问题不在您发布的代码中。如果不知道您的代码是做什么的以及如何做的,就不可能说出哪里出了问题。这有什么原因吗你不能使用调试器吗?与此同时,我能够重现错误消息,我想我现在已经修复了它。错误消息btw与我通过执行上面的代码片段收到的上面所示的错误消息相同。因此,从这样的消息中确实很难判断出到底出了什么问题。不过,我仍然不知道为什么要执行for循环ime,而另一次它不是。可能是因为它在一个函数中,该函数在while循环中再次被调用。我只是将它放入if排除(if(bob>0))中,因此它不再是可能的缓冲区溢出的原因。
int bob=0;int pop;
for(pop=0;pop<bob;pop++){cout<<pop;}