AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
-65%
Le deal à ne pas rater :
Aspirateur balai sans fil Xiaomi Dreame V10 2-en-1
209 € 599 €
Voir le deal
Le Deal du moment :
Réduction sur la console Nintendo Switch Lite
Voir le deal
196.29 €

 

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

Aller en bas 
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 : 3338
Localisation : Dans une canonnière wookie.
Projet Actuel : Living the life
[C++][Résolu]Erase vector Void

[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: