Как дать значение указателю псевдонима typedef через функцию? - PullRequest
0 голосов
/ 15 мая 2019

Я хочу создать новый championship в функции, но всякий раз, когда я даю ей значение, код строится, но при запуске он останавливается на этой части.

typedef struct
{
    char id[10];
    int c;
}team;

typedef struct
{
    team t1;
    team t2;
    int t1g;
    int t2g;
}match;

typedef struct
{
  match matches[30];
  team teams[6];
  int teamno;
  int played;
}* championship;

championship newchampionship(){
    championship temp;
    temp->played=0;
    temp->teamno=0;
    return temp;
}

int main(){
   championship ch1=newchampionship();
   ...
}

Всякий раз, когда он достигает temp->played=0;все останавливается и процесс возвращается с -1073741819.

Есть идеи, как это исправить?Я просто хочу чемпионат с пустыми массивами и 0 в int.

1 Ответ

0 голосов
/ 15 мая 2019

Измените ваш код следующим образом:

typedef struct
{
  match matches[30];
  team teams[6];
  int teamno;
  int played;
} championship;

championship *newchampionship(){
    championship *temp = malloc(sizeof championship);
    temp->played=0;
    temp->teamno=0;
    return temp;
}

int main(){
   championship *ch1=newchampionship();
   ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...