我试图在主函数和另一个函数(在另一个文件.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 }};
我从主函数中用类似
PrintFunc(gamer);
函数结构应该是这样的
void PrintFunc(Player p){
//stuff
}
我究竟做错了什么?
最佳答案
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;
}
关于c - 将struct数组传递给函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48858414/