我有一個簡單的for循環在C++和初始化語句是:C++ for循環初始化計數器錯誤
對(INT N = 0; N <這 - > fileLines.size(); N ++) {
由於一些瘋狂的原因,n的值被設置爲0而不是249758,這導致for循環評估錯誤。
任何想法,爲什麼這是初始化錯誤(即不是0)?
我有一個簡單的for循環在C++和初始化語句是:C++ for循環初始化計數器錯誤
對(INT N = 0; N <這 - > fileLines.size(); N ++) {
由於一些瘋狂的原因,n的值被設置爲0而不是249758,這導致for循環評估錯誤。
任何想法,爲什麼這是初始化錯誤(即不是0)?
你試過堅持
std::cerr<<n<<std::endl;
的for
環的內部?這似乎是在程序運行過程中觀察價值的一種更直接的方式,以驗證它是否在按照您的想法進行操作,並且優化不會給您輸出帶來問題。
也許你的程序是多線程的,有人不恰當地寫入該內存位置?
您是在調試模式還是釋放模式?當您通過優化查看變量值時,保留髮布模式無法爲您提供正確的值。 – tletnes
看起來你已經在'n'初始化之前停下來了。如果你通過一條指令前進,會發生什麼? –