在我的代码中,我得到了一个这种结构和两个函数:
typedef struct {
char team;
int score;
} Player;
myfunc1 (Player *players) {
players->score = 105;
myfunc(?);
}
myfunc2(?) {
//change again points and team character
}
在 main 中,我创建了一个该结构的数组并将其传递给一个函数:
int main () {
Player players[2]
myfunc1(players)
}
我开始使用第一个函数,但我不知道应该从第一个函数传递什么参数到第二个函数来修改在 main 中创建的玩家 [2] 数组。
最佳答案
您可以再次使用一个简单的指针来访问来自播放器
的数据:
void myfunc2 (Player *player)
{
players->score = 123;
}
像这样从你的 myfunc1
调用它:
myfunc2(players);
您实际上会将地址传递给存储在指针 Player* players
中的 Player 结构(在函数 myfunc1
中)到局部指针变量 Player *player
在函数 myfunc2
中。
要在 main
函数中修改 players[1],请像这样调用 myfunc1
:
int main () {
Player players[2]
myfunc1(&players[1]); // & = give an address to your struct
}
注意数组索引,它们确实从零开始,所以如果你有一个容量为 2 的数组 (Player players[2]
),那么只有两个有效索引: 0
和 1
。如果您访问超出容量的索引,您的代码迟早会崩溃。
关于c - 通过 C 中的几个函数传递结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20174177/