2

C++ に単純な for ループがあり、初期化ステートメントは次のとおりです。

for (int n = 0; n < this->fileLines.size(); n++) {

なんらかの理由で、n の値が 0 ではなく 249758 に設定されているため、for ループが正しく評価されません。

これが間違って初期化されている理由(つまり、0ではない)のアイデアはありますか?

ここに画像の説明を入力

4

2 に答える 2

6

for ループの後で n の値を確認する必要があると思いますが、これが 0 以外になる可能性があるとは思いません。スイッチの開始時の値を確認してください。n が実際に設定される前に、ブレークポイントが中断された可能性があります。

于 2012-12-12T18:22:35.203 に答える
0

くっつけてみた?

std::cerr<<n<<std::endl;

forループの中?これは、プログラムの実行中に値を観察して、プログラムが思ったとおりに動作しているかどうかを確認するより直接的な方法のようであり、最適化によってこの出力に問題が生じることはありません。

プログラムがマルチスレッド化されていて、誰かがそのメモリ ロケーションに不適切に書き込んでいる可能性はありませんか?

于 2012-12-12T18:38:11.470 に答える