知らんが、C#とかjavaなら空いてる弾幕のことなど考えずに
弾丸リスト.add(上向き弾);
弾丸リスト.add(下向き弾);
でやるもんだし、C++でも似たような実装は可能だろ?
とりあえず、Cでやりたいんなら連結リストを実装することから始めてみればいいんじゃないか。