C передавая структуры в качестве параметров функции - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь передать указатель структуры в качестве параметра для вызова функции. Я продолжаю получать разные ошибки. Надеюсь, что кто-то может помочь мне с этим.

Я пытался вызвать его и изменить код несколькими способами, но я все еще получаю ошибку. Первая строка моего кода показывает мою исходную функцию, а плохо показывает мой вызов функции, который следующий. Этот вызов функции также находится в другой функции.

Вот мой код:

void baroncard(int choice1, struct gameState *state){
    // ... code ...
}

Вот теперь мой вызов функции, который отделен от оператора case:

case baron:
    baroncard(choice1, struct gameState *state);

1 Ответ

0 голосов
/ 10 октября 2019

Это недопустимый вызов функции

baroncard(choice1, struct gameState *state);
                   ***********************

Вместо аргумента вы вставили объявление второго параметра. Вы должны использовать объект типа struct gameState * в качестве аргумента так же, как вы указали первый аргумент.

Например

struct gameState state;
//...
baroncard(choice1, &state);

Или

struct gameState *state = malloc( sizeof( struct gameState ) );
//...
baroncard(choice1, state);

Обратите внимание, что имя объекта, передаваемого в качестве аргумента функции не обязательно, должно совпадать с именем соответствующего параметра функции.

...