我有一個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