Невозможно создать глобальный массив структур - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь создать глобальный массив структур, однако способ, которым я думал об этом, не работает. Для приложения, которое мне нужно, требуется, чтобы оно было глобальным, однако размер будет неизвестен до тех пор, пока внутри функции main (). Мой код выглядит следующим образом:

#include <stdlib.h>
#include <string.h>
#include <ctype.h>
//
struct player {
    char letter;
};

struct player *players;

int main(int argc, char** argv){
    check _variables();
    int *inpBuff;
    inpBuff = convert_input(argv[1], argv[2]);
    int numPlayers = inpBuff[0];
    players =  malloc(numPlayers*sizeof(player));
    return 1;
}

Я получаю сообщение об ошибке: ошибка: 'player' необъявленный (первое использование в этой функции) Players = Malloc (NumPlayers * sizeof (игрок));

1 Ответ

0 голосов
/ 13 сентября 2018

ИСТОЧНИК ОШИБКИ -> Вы используете player вместо Players в malloc, что неверно. Player - это имя struct, а вам нужно имя указателя в malloc.

Первый -> Вам необходимо исправить утверждение malloc -> использовать players = malloc(numPlayers*(sizeof(*players));

Second -> Если тип возврата функции main() равен int, значит, ваш оператор return отсутствует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...