0

コードに問題があります。

void gMenu_BP()
{
CLS // #define system("cls");
cout << "Ive opened my backpack and saw...\n\n";
cout << ":Name\t\tQuantity\t\tPrice\n\n";

    for (int i = 0; i < sizeof(Items); i++)
    {
        try{
            if(Items[i].owd==1)
            {
                cout <<i+1<<">"<<Items[i].Name<<"\t"<<Items[i].q<<"\t\t\t"<<Items[i].price<<endl;
            }
        }
        catch(exception ex) {
            cout << "error";
        }
    }
    //cout<<"====================================================";
    cout <<"1.Use Item\n2.Remove Item\n3.Back to Journey";
    int volba01;
    cin >> volba01;

}

所有者 ID が 1 のすべてのオブジェクトを表示します。それらはすべてコンソールに書き込まれます。私の問題はこれです:

Unhandled exception at 0x00C3A2CA in Journey.exe: 
0xC0000005: Access violation reading location 0x00C4702C.

VC ++の外でもクラッシュします。これは完全に機能しましたが、テキストのレンダリングに問題が発生し始めたことに注意してください(80milあたり1文字)。次に、printf() に関連するいくつかの機能を無効にしました。そして、ここでもエラーがスローされ始めました。ウイルスか何かのようなものです。例外として、VC++ output.c ファイルとその他のシステム ファイルが表示されます。何をすべきかわからないので、C# に移行するのは少し難しいでしょう。

編集:OK今は動作します。for-loopヘッダーをに変更しました

  for (int i = 0; i < sizeof(Items)/sizeof(player.Items[0]); i++)

その奇妙な解決策ですが、うまくいきます。

4

1 に答える 1