-1

私は2週間前にうまく機能したこのプログラムを手に入れました、私はそれが今クラッシュするところのどの部分も変更しませんでした。

たとえば、次のスニペットを考えてみましょう:(isが有効istreamであり、が含まれていると仮定します<tag>

std::string Str;
char c;
for ( ; is >> c; )
{
    std::cout << c << std::flush;
    Str += c;
}

出力: < その後クラッシュします。

私はWindowsとmingGWを使用していますが、クラッシュは私のプログラムにエラーが発生したことを示すウィンドウです。Windowsはそれを修正しようとしています...

しかし、これがすべてではありません。初期化するとき、Str = c;または初期化するときに同じようにクラッシュします。std::string Str ("op");

このエラーを見つけてから30分後、別のエラー(最初のエラーの前)が1行に表示されました。

osstr.write((char *) Word, 16);

osstr有効なostringstreamはどこにあり、Wordは塗りつぶされていますunsigned char *

編集:

問題はおそらくコードにはありません。文字列コンストラクターへの単純な呼び出しがクラッシュするためです。

std::string Str ("")作品

std::string Str ("str");クラッシュ

4

1 に答える 1

0

情報が不完全で申し訳ありませんが、コード全体を提供することはできませんでした。

この問題は、クラッシュしなかった上記のコードのはるか前のバッファオーバーフローが原因で発生しました。

于 2012-05-28T08:11:02.760 に答える