I am working on a game in C++ where the various characters can fire various projectiles. After firing one, they need to take a moment to reload. Because of this restriction, any given character will never realistically have more than a few projectiles firing at once, before one goes out of range(a variable set by the firing character) or hits another object, in both cases being removed from play.
The "removed from play" is the part I'm concerned about.
My idea was to set an active boolean for each bullet, have them all in a vector, and when a character goes to fire, simply grab the first one that is set to "active == false". Inactive bullets wouldn't be drawn or updated. Since I don't at this time actually know how many bullets there would at most be, I worry that having a bunch of "inactive" bullets lying around could cause problems.
Should I be creating a new bullet when a character fires and deleting it when it hits something/goes out of range?