如何用我的结构类型创建一个数组?

Jac*_*ack 5 c arrays data-structures

在C#.NET中,我可以使用List<myclasstype> vals = new List<myclasstype> ();它在C中可能相同吗?

我有一个像这样的结构:

typedef struct foo {
    int x;
    int y;
} Baa; 
Run Code Online (Sandbox Code Playgroud)

我想要做:

**BAA vals = ?? 
int i ;
for(i = 0; i < size; i++)
{
   vals[i].x = i;
   vals[i].y = i * 10;
}
Run Code Online (Sandbox Code Playgroud)

我希望这对你来说很清楚.提前致谢.

Hun*_*len 6

它与在C中创建任何其他数组的情况相同,只是替换了类型 Baa

int size = 5;
Baa baaArray[size];

int i;
for(i = 0; i < size; i++)
{
   baaArray[i].x = i;
   baaArray[i].y = i*10;
} 
Run Code Online (Sandbox Code Playgroud)

您还可以使用指针和malloc来完成此任务:

int size = 5;
Baa *baaPtr = malloc(sizeof(Baa) * size);

//...
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.