Should I really be allocating and deallocating memory like that?Most systems like this, like particle systems and other rapidly created/destroyed objects, live in a memory pool.
An appropriate size pool of objects is allocated and initialized, and then marked as not being active. When you need one it is marked as active, when you are done with it the item is marked as inactive.
The details of an appropriate size depends on your needs. I've seen high-performance particle systems that have space for several hundred thousand particles.
Do you have any general info on the object pool technique? I feel like I should know this.