El error está (creo) en la liberación de la memoria dinámica, no sé qué estoy haciendo mal. Verán, esta es la parte:
Código
for(it = balas.begin(); it != balas.end(); ++it) { (*it)->borrar_bala((*it)->GetX(),(*it)->GetY()); if(!(*it)->rng_fuera()) { (*it)->mod_pos_bala((*it)->GetY()); (*it)->pintar_bala(); } else { delete (*it); balas.erase(it); } }
La función rng_fuera() retorna un valor booleano, retorna true si la bala ha llegado al tope, es decir, cuando y = 0. Y false en caso contrario.
Entonces yo, como se muestra arriba, borro de la pantalla la posición actual de la bala, si ha llegado al tope, pues libero la memoria y borro ese elemento del vector, en caso contrario modifico la posición actual de la bala a la nueva posición y la pinto. Pero algo sucede y no puedo encontrar el error.
Si necesitan el código completo para entenderlo mejor, pídanmelo y lo publico en los comentarios.