文字列をwstringに変換するときに、以下の関数がランダムにクラッシュすることがあります。これはHTTPヘッダー(http://www.codeproject.com/Articles/66625/A-Fully-Featured-Windows-HTTP-Wrapper-in-C)を解析するために使用され、正常に動作しましたが、最近サーバーを変更したときにランダムに機能しなくなりました。 (このコードは、コードプロジェクトプロジェクトに付属するクラスに由来します)文字列をwstringに変換中にクラッシュする
なぜこのようなことが起こりますか?ここ数か月は正常に動作していて、サーバーを変更したときには動作しなくなってしまったのは私にとっては奇妙なことです。あなたがそのループに入るとしたときに、その後どんなにi
の価値、あなたが原因以外にアクセスする未定義の動作を得るでしょう...
result[i] = wstring(Result[i].begin(), Result[i].end());
...、result.size() == 0
を想定し
'operator []'は**新しい**要素を 'std :: vector'に挿入しません。したがって 'result.size()!= 0'の場合、これもクラッシュします。 –
'ベクトル結果;'サイズがゼロのベクトルを作成します。コンテンツを追加するときは、 'Result [i]'の代わりに 'Result.push_back()'を使うべきです。 –
また、 'result'と' Result'の両方を持つことは、タイプミスまたは2つを求めるだけです! –