我正在尝试在main和另一个函数(在不同的文件.c)之间传递结构的数据但没有成功。我有这样的结构
struct player{
char name[10];
int budget;
};
typedef struct player Player;
void PrintFunc(Player p); //function prototype
Player gamer[2] = {{"Alice", 100},
{"Bob", 100 }};
我用 main func用
之类的东西来调用它PrintFunc(gamer);
功能结构应该是这样的
void PrintFunc(Player p){
//stuff
}
我做错了什么?
答案 0 :(得分:2)
gamer
是一个数组,PrintFunc
需要一个对象。
选项1:
PrintFunc(gamer[0]);
PrintFunc(gamer[1]);
选项2:更改函数以接受指向Player
个对象的指针:
void PrintFunc(Player *p, size_t len){
for(size_t i = 0; i < len; ++i)
// do something with p[i]
}
int main(void)
{
Player gamer[2] = {{"Alice", 100},
{"Bob", 100 }};
PrintFunc(gamer, sizeof gamer / sizeof *gamer);
return 0;
}
答案 1 :(得分:0)
void PrintFunc(Player p[]){
//stuff
}
发送玩家对象数组时接收玩家对象数组