You probably have a memory leak somewhere, can't. Can't help you with that without thoroughly inspecting your code. Are you sure you are calling the destructors after removing them from the list? C++ doesn't have a garbage collector.
However in general you shouldn't, create, delete and then create lots of small objects. It's expensive and fragments your memory (which can also lead to some increase in memory usage). For objects like bullets you could use a pool, this. A pool is just a big list of instances of bullets that can be re-used. Instead of constructing a bullet when it's fired, and destructing when it hits something, you grapgrab a bullet from the pool and use it, until it hits something when it is returned from the active actors list back to the pool.
A good article on this is: http://wiki.andengine.org/ObjectPool