私は、配列から多くのマッチを探し、いくつかの条件を満たすマッチしたすべてのチームを見つける機能を持っています。見つかった場合、新しい配列に割り当てる必要があります。新しい配列を出力パラメータとして使用する必要があります。セグメンテーションフォールト:11
私はそれを呼び出すとsegmentation fault: 11
を取得します。私はデバッグしようとしましたが、理由が分からないようです。メインで宣言されている次のとおりです。
TEAM team_least_viewers;
double spectators = 99999;
solve_task_four(round, team, &team_least_viewers, &spectators);
と機能自体:要求されたとして
void solve_task_four(ROUND *round, TEAM *team, TEAM *team_least_viewers, double *spectators) {
int i, j, k = 0;
for(i=0; i<ROUNDS_PR_SEASON; i++) {
for(j=0; j<MATCH_PR_ROUND; j++) {
if(round[i].match[j].year == 2015) {
/* Searching for team name in team[]*/
for(k=0; k<NUMBER_OF_TEAMS; k++) {
/* If it matches */
if (round[i].match[j].home_team == team[k].name) {
team[k].spectators_home_last_year += round[i].match[j].spectators;
}
}
}
}
for(k=0; k<NUMBER_OF_TEAMS; k++) {
if(team[k].spectators_home_last_year < *spectators) {
*spectators = team[k].spectators_home_last_year;
}
}
}
}
構造体:
はtypedef struct {
char weekday[WEEKDAY_SIZE], start_time[START_TIME_SIZE],
home_team[TEAM_SIZE], away_team[TEAM_SIZE];
double spectators;
int day, month, year, round, home_team_score, away_team_score;
} MATCH;
typedef struct {
MATCH match[MATCH_PR_ROUND];
} ROUND;
typedef struct {
char *name;
int points, matches_played,
matches_won, matches_draw, matches_lost,
matches_won_home, matches_won_away,
goals_for, goals_against, goal_difference;
double spectators_home_last_year;
} TEAM;
すべてのヘルプは大歓迎ずっとです。
'if(team [k] .spectators_home_last_year <*観客)'がダブルスを比較するのは良い考えではありません。 – hbagdi
@hbagdi:なぜダブルスを比較するのが悪い考えですか? –
TEAM、ROUNDおよびMATCH構造体を転記できますか? また、 'round [i] .match [j] .home_team == team [k] .name'は、ここでやりたいことがあれば、文字列比較を行うことはできません。 – hbagdi