-1

だから私は今日このdllを作成しましたが、理由もなくクラッシュしています...

これは機能します:

testa++;
testb++;

const char *t = "test";

if (t == "adoinfosidnoxucnviune")
{
}

これは testb++ でクラッシュします:

testa++;

const char *t = "test";

if (t == "adoinfosidnoxucnviune")
{
    testb++;
}

testa と testb は整数です。比較対象の文字列でさえありません。わかりません

4

1 に答える 1

0

ポインターが指す値ではなく、ポインターを比較しています。

使用するstrcmpか使用しますstd::string

クラッシュは別の場所で発生する必要があります。

2 つの異なるオブジェクトを指しているため、ポインターの値が異なるため、どちらの "if" ステートメントのコードも実行されません。

コードのどこかで、 の値をテストしていますtestb。最初の例でtestbは、常にインクリメントされます。2 番目の例でtestbは、インクリメントされません。

初期化しましたtestbか?

真剣に、デバッガーでシングルステップしたとき、クラッシュする前に最後に実行された行は何ですか?

于 2013-05-18T17:52:15.557 に答える