Как сделать массив с моими типами структур? - PullRequest
5 голосов
/ 27 февраля 2012

В C # .NET я могу использовать List<myclasstype> vals = new List<myclasstype> (); это возможно сделать эквивалентно в C?

У меня есть такая структура:

typedef struct foo {
    int x;
    int y;
} Baa; 

, и я хочу сделать:

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

Надеюсь, это понятно для вас.Заранее спасибо.

1 Ответ

6 голосов
/ 27 февраля 2012

Это то же самое, что и при создании любого другого массива в 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;
} 

Вы также можете использовать указатели и malloc для выполнения этого:

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

//...

Надеюсь, это поможет.

...