Вам нужно будет инициализировать массив самостоятельно:
CollisionLayer layer;
layer.numberOfTiles = numberOfTiles;
layer.tileArray = (int*)malloc(sizeof(int) * numberOfTiles);
Или, если вы хотите создать структуру в куче:
CollisionLayer* pl = (CollisionLayer*)malloc(sizeof(CollisionLayer));
pl->numberOfTiles = numberOfTiles;
pl->tileArray = (int*)malloc(sizeof(int) * numberOfTiles);
// When you are done:
free(pl->tileArray);
free(pl);
Другой вариант - жесткий кодфиксированный предел размера в CollisionLayer
, например:
typedef struct
{
int numberOfTiles;
// an array of ints here
int tileArray[100];
} CollisionLayer;
Конечно, это будет менее желательно во всех отношениях, но это единственный вариант, если вы не хотите управлять памятью вручную.