Witam, jest to pierwszy mój post na tym forum więc proszę o wyrozumiałość :)
Moje pytanie brzmi, czy usuwanie elementów z listy w ten sposób powoduje wycieki pamięci?
Jest to lista obiektów typu użytkownika.
deklaracja:
std::list<Missile*> missilesList;
dodawanie pojedynczego elementu:
void MainGame::shoot(SDL_Surface* screen){
if((150+missileTimer->getTicks())<=0){
soundsPlayer->playSingleChunk("src/sounds/Spaceship/shooting.wav");
player.x = playerX;
player.y = playerY;
missilesList.push_back(new Missile(player,screen));
missileTimer->start();
}
}
usuwanie elementów z listy:
for(unsigned int i=0; i<enemyMissilesList.size();i++){
enemyMissilesList.back()->draw(clipNumber);
if(playerSpaceShip->isCollisionDetected(enemyMissilesList.back()->getMissileCoords())){
soundsPlayer->playSingleChunk("src/sounds/Spaceship/hit.wav");
delete enemyMissilesList.back();
enemyMissilesList.pop_back();
}else if(enemyMissilesList.back()->getMissileY()>screen->h){
delete enemyMissilesList.back();
enemyMissilesList.pop_back();
}else{
enemyMissilesList.push_front(enemyMissilesList.back());
enemyMissilesList.pop_back();
}
}
Z góry dziękuję za odpowiedź.