したがって、ボードゲームのファイルに読み込みを実装しようとしています。Monopolyの0x003BADF8で例外がスローされます。AI.exe:0xC0000005:アクセス違反の読み取り場所0x01142018
エラーは、最初のif文と関係がありますが、私が見る限り、「インデックス」の値は2で、if文をスキップする必要があります。
次のインデックス値は1です。これはifステートメントに当てはまるはずですが、インデックス値をチェックするときにエラーを出し続けていますか?
class boardSpace
{
public:
int index, cost, rent, color;
string street, streetType, jail;
};
void readFile(boardSpace marray[])
{
int i = 0;
ifstream inFile;
inFile.open("Monopoly.txt");
while (!inFile.eof())
{
inFile >> marray[i].index;
inFile >> marray[i].street;
if (marray[i].index == 1)
{
inFile >> marray[i].streetType;
inFile >> marray[i].cost;
inFile >> marray[i].rent;
inFile >> marray[i].color;
}
if (marray[i].index == 3)
{
inFile >> marray[i].streetType;
}
if (marray[i].index == 7)
{
inFile >> marray[i].street;
inFile >> marray[i].streetType;
inFile >> marray[i].jail;
}
if (marray[i].index == 8)
{
inFile >> marray[i].street;
}
i++;
if (inFile.eof())
{
break;
}
}
inFile.close();
}
しかし、アクセス違反があなたのコードは、それが割り当てられていないことをメモリにアクセスしようとしていることを示し、次のエラー
Exception thrown at 0x003BADF8 in Monopoly AI.exe: 0xC0000005:
Access violation reading location 0x01142018.
あなたの質問を[編集]して[mcve]を提供してください。 –
デバッガを使用してください:おそらく、エラーが発生した正確な行が表示されます。 –
私は、コード –