【发布时间】:2017-09-20 10:10:17
【问题描述】:
我想知道是否有一种方法可以使用 for 循环中的 i 变量声明 x 数量的结构:
int playersAmount, i;
printf("How many players are there?");
scanf("%i", &playersAmount);
for (i = 1; i <= playersAmount; i++) {
struct players //player(i);
}
假设我希望有 5 个玩家。我希望 for 循环基于 i 变量创建 struct player player1、struct player player2、struct player player 3 等。
谢谢!!!
【问题讨论】:
-
我已经定义了结构,但没有将它包含在给定的代码体中。 :)
-
在 C99 或更高版本中,在循环外(不在循环内),您可以写
struct players player[i];。在循环内部,您在每次迭代时丢弃数组,这不是您想要的。这些被称为可变长度数组 — VLA — 并非所有编译器都支持(MS Visual Studio 长期以来一直是一个坚持者,尽管它现在可能支持它;您可以尽可能地检查)。 -
您可以声明一个指针数组并分配每个指针(例如使用 malloc)并将指针保存到数组中的每个结构。
标签: c variables for-loop struct