C++
1vector<MyClass> data[6]; 2int input[6]={0,0,0,0,0,0}; 3for (i = 0; i < 6; i++) { 4 if (data[i].size() == 0)continue; 5 if (input[i] == 1) { 6 do_something(); 7 } 8}
上記のようなプログラムで、Visual Studio のデバッガで確認すると data[i].size()==0, input[i]==0 にもかかわらず、do_something() が実行されることがあります。まだ発生条件は分からない中の質問で申し訳ないのですが、原因として考えられうる物を教えてください。
VisualStudioのデバッガを使用しているのであれば、do_something()関数内でブレークを張っておいて、止まった時にバックトレースで呼び元に行って条件文の変数がどうなっているかを確認してみてはいかがでしょうか。
回答6件
あなたの回答
tips
プレビュー