我在C ++中有一个简单的for循环,初始化语句是:
for(int n = 0; n< this-> fileLines.size(); n ++){
由于某些疯狂的原因,n的值被设置为不是0而是设置为249758,这导致for循环评估错误。
为什么这会错误地初始化(即,不是0)?
答案 0 :(得分:6)
我认为你需要在for循环之后验证n的值是什么,我没有看到任何方式这可能是非0。检查开关开始时的值。在实际设置n之前,您的断点可能已经中断。
答案 1 :(得分:0)
你有没有试过坚持
std::cerr<<n<<std::endl;
在for
循环内?这似乎是一种更直接的方法,可以在程序运行期间观察值,以验证它是否正在按照您的想法进行操作,优化不会给您带来输出问题。
也许您的程序是多线程的,有人不恰当地写入该内存位置?