我有一个while循环在我的计划中,粒子不断移动,直到它已经访问了一定数量的地方(由整数placesToVisit
给出)。变量意外更改值
int dimensionLength=2;
int placesToVisit=pow(dimensionLength, 3);
while (numPlacesVisited<placesToVisit) {
// Code which makes no changes or references to placesToVisit
// at all (except a few printf commands for debugging).
}
我的问题是,经过这个循环placesToVisit
的多次迭代突然改变其值设置为1(因此停止循环过早)。它应该有一个常数值8.这个变量只在while
循环的条件语句中使用,没有指向它的指针,除了我为了调试而投入的几条printf
命令之外,没有其它引用。有什么可能导致placesToVisit
突然改变它的价值?
寻找指向栈上的东西的指针/数组操作。如果其中一个出界,它可能会损坏变量。 – DrC 2013-04-20 18:05:58
你需要在这种情况下显示你的所有代码。你可能会超出缓冲区或者摧毁堆栈上的其他东西。 – 2013-04-20 18:05:59
您的'dimensionLength'是否超过1290(2147483647的立方根,我认为这是您的INT_MAX的值)? – 2013-04-20 18:07:12