Bonjour,

Mon programme plante lorsque j'utilise directement le membre list "facts" pour le remplir via la fonction setFactsList2.

Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

Entity.h :

class Entity
{
    public :
        int id;
        string name;
        list <Fact> facts;  //facts
        
    public :
        ... 
        void  setFactsList2(const std::list<Fact>& newFacts);
}

Entity.cc :

void  Entity::setFactsList2(const std::list<Fact>& newFacts) {
    for (std::list<Fact>::const_iterator i = newFacts.begin(); i != newFacts.end(); ++i) {
        facts.push_back(*(i));
    }
}

void Entity::addFacts(list<Fact> factsSource, Entity *entity){

    list<Fact> factsDest = entity->getFactsList();

    unit(factsSource, &factsDest);

    entity->setFactsList2(factsDest);
}
Lorsque je commente la ligne "facts.push_back(*(i));", l'execution fonctionne.

Auriez vous une idée sur l'origine du problème ?

Merci d'avance.