私は、コンピューター サイエンス 1 コースで追加単位を取得するために、スピード デート情報を並べ替えるプログラムを作成しようとしています。そして、私は奇妙な問題に直面しています。ネストされた一連のループに到達すると、ループを 2 回実行した後 (デバッグ関数が呼び出された時点で)、プログラムがクラッシュします。関数 transferData; ファイルからデータを取得し、それを構造体に移動して、まだ作成されていない関数によって後で処理するように設計されています。私は一生それを理解できないので、コードを下に置き、その下に私が使用しているテストデータを置いたので、どんなアドバイスも大歓迎です。
caData transferData(fData * fileData, caData * workingData, int numCouples)
{
int i = 0, j = 0, k = 0;
workingData->maData = (struct mData*)malloc(sizeof(mData)*(numCouples*2));//Create Array of Match Data with cells equal to double the number of couples
workingData->maData->couData = (struct cData*)malloc(sizeof(cData)*numCouples);//Create a Couple structure array with a number of cells equal to the number of couples.
///TODO:
//Read in Names
for(i = 0; i < (numCouples * 2); i++)//Rotate through Matches
{
if(i < numCouples)//Men First
{
debug();
for(j = 0; j < numCouples; j++)//Scan in First half of Couples
{
for(k = 0; k < numCouples; k++)//Scan In Male Names
{
fscanf(fileData->inputData, "%s", workingData->maData[i].couData[j].guyName);
}
for(k = 0; k < numCouples; k++)//Scan In Female Names
{
fscanf(fileData->inputData, "%s", workingData->maData[i].couData[j].girlName);
}
}
}
else//Now the women
{
for(j = 0; j < numCouples; j++)//Scan in First half of Couples
{
for(k = 0; k < numCouples; k++)//Scan In Female Names
{
fscanf(fileData->inputData, "%s", workingData->maData[i].couData[j].girlName);
}
for(k = 0; k < numCouples; k++)//Scan In male Names
{
fscanf(fileData->inputData, "%s", workingData->maData[i].couData[j].guyName);
}
}
}
}
//Read In Scores
//Compute differances
}
編集:コードをエラーの場所に凝縮しました。デバッグ関数が呼び出される場所です。2 回実行された後、クラッシュします。-1073741819 (0xC0000005) を返しています。