在C中使用变量声明多个结构

在C中使用变量声明多个结构,c,variables,for-loop,struct,C,Variables,For Loop,Struct,我想知道是否有一种方法可以使用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); } int playersAmount,i; printf(“有多少玩家?”); sca

我想知道是否有一种方法可以使用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);
}
int playersAmount,i;
printf(“有多少玩家?”);
scanf(“%i”和playersAmount);

对于(i=1;i,您可以创建一个类似

struct players myplayers[5];
然后使用for循环可以指定如下值

int main()
{
int a;
 for(a = 0; a < 5; a++)
 {
        myplayers[a].score = 1;
 }

return 0;
}
intmain()
{
INTA;
对于(a=0;a<5;a++)
{
我的球员[a]。得分=1;
}
返回0;
}

我已经定义了结构,但没有将其包含在给定的代码体中。:)在C99或更高版本中,在循环外部(而不是内部),您可以编写
struct players-player[I]。在循环内部,每次迭代都会丢弃数组,这不是您想要的。这些被称为可变长度数组(variable length array-VLAs),并非所有编译器都支持它们(MS Visual Studio长期以来一直是一个支持它的平台,尽管它现在可能支持它;您可以像我一样检查)。您可以声明一个指针数组并分配每个指针(比如使用malloc)并保存指向数组中每个结构的指针。您至少应该显示数组的声明。描述VLA可变长度数组时,您可能会感到不舒服,也可能会感到不舒服。(你可能知道也可能不知道它们的存在。)