AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-15%
Le deal à ne pas rater :
(Adhérents Fnac) LEGO® Star Wars™ 75367 Le croiseur d’assaut de ...
552.49 € 649.99 €
Voir le deal
anipassion.com

 

 [C++][Résolu]Erase vector

Aller en bas 
2 participants
AuteurMessage
Ancestral
Utilisateur confirmé: Rang *
Ancestral


Messages : 227

[C++][Résolu]Erase vector Empty
MessageSujet: [C++][Résolu]Erase vector   [C++][Résolu]Erase vector EmptyDim 2 Aoû 2015 - 19:23

Bonjour, j'ai un probleme dans la conception de mon jeu en C++.
Je ne parviens pas à détruire mes ennemies.

Voici la façon dont je les instancies:
Code:
WorldActions::WorldActions(){
    ...
    for(int i=0; i<nbEnnemies; i++){
        ennemies.push_back(Ennemie());
    }
}
Voici comment je détruits mes ennemies
Code:

void WorldActions::update(){
    ...
    for(int i=0; i< nbEnnemies; i++){
        if (player.collides(ennemies[i]) && !ennemies.empty()){
            ennemies.erase(ennemies.begin()+i);
        }
    }
}
Le programme se lance correctement mais au contact d'un ennemie la console affiche
Citation :
pure virtual method called
terminate calles without an active exception
Aborted (core dumped)

D'où viens le problème, et comment puis-je le résoudre?
Merci


Dernière édition par Ancestral le Dim 2 Aoû 2015 - 20:00, édité 1 fois
Revenir en haut Aller en bas
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

[C++][Résolu]Erase vector Empty
MessageSujet: Re: [C++][Résolu]Erase vector   [C++][Résolu]Erase vector EmptyDim 2 Aoû 2015 - 19:50

Je pense que le soucis, c'est que tu détruits un élément du vector, donc sa taille diminue de 1, hors ta boucle de va pas de 0 à vector.size mais de 0 à nbEnnemies. Donc la dernière itération tape à une adresse qui n'est plus allouée et ça plante Wink

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
Ancestral
Utilisateur confirmé: Rang *
Ancestral


Messages : 227

[C++][Résolu]Erase vector Empty
MessageSujet: Re: [C++][Résolu]Erase vector   [C++][Résolu]Erase vector EmptyDim 2 Aoû 2015 - 20:00

C'est ça! J'en reviens pas d'être passé à côté kill
Merci à toi
Revenir en haut Aller en bas
Contenu sponsorisé





[C++][Résolu]Erase vector Empty
MessageSujet: Re: [C++][Résolu]Erase vector   [C++][Résolu]Erase vector Empty

Revenir en haut Aller en bas
 
[C++][Résolu]Erase vector
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Programmation-
Sauter vers: