C传递结构作为功能参数

时间:2019-10-10 09:31:35

标签: c function parameters arguments call

我正在尝试将结构指针作为参数传递给函数调用。我不断收到不同的错误。希望有人能帮助我。

我尝试调用它并以几种不同的方式更改代码,但是我仍然遇到错误。我的代码的第一行显示了我的原始函数,而病历显示了下一个函数调用。此函数调用也在另一个函数中。

这是我的代码:

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

这是我的函数调用,它是case语句的一部分:

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

1 个答案:

答案 0 :(得分:0)

这是无效的函数调用

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

您插入了第二个参数的声明,而不是一个参数。您必须像提供第一个参数一样使用struct gameState *类型的对象作为参数。

例如

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

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

请注意,不必将作为参数传递给函数的对象的名称与相应函数参数的名称相同。