Well, I would recommend this. Make and array of size, um... 200? something pretty big. Then, define an end var that is a location in the array. Then, when you update all the bullets, you start at the 0 location in the array and end at the end location in the array. If a bullet is created, move the end forward one, and when a bullet is destroyed, delete the info on it, move the info on the bullet at location end to the location of the deleted bullet and then move end back one.
This process will minimize the processing you need to do, and it will allow you a max of 200 bullets at one time.
Here is a picture explaining the process.
BTW, you may want to use a 2D array to store necessary info on the bullets. Or you could use a sort of array of classes. I forget what they are called. The same basic principle will apply though.
EDIT:fixed I think