How can I change the size of an array in C?
You can't. This is normally done with dynamic memory allocation.
// Like "ENEMY enemies[100]", but from the heap
ENEMY* enemies = malloc(100 * sizeof(ENEMY));
if (!enemies) { error handling }
// You can index pointers just like arrays.
enemies[0] = CreateEnemy();
// Make the array bigger
ENEMY* more_enemies = realloc(enemies, 200 * sizeof(ENEMY));
if (!more_enemies) { error handling }
enemies = more_enemies;
// Clean up when you're done.
free(enemies);
Once an array in C has been created, it is set. You need a dynamic data structure like a Linked List or an ArrayList