Bonjour/bonsoir,

Mon problème se situe lors de l'exécution (compilation sans erreur ni warnning)
... plantage (Classique me direz vous).

j'ai cherché sur google, mais rien ne m'a aidé (j'ai tenté un "#include <stdlib.h>" en tête de fichier cpp, mais ça n'a rien changé ; j'ai testé de remplacer NULL par 0, et rien à faire )

DONC
Dans mon programme, je manipule une collection d'entiers, cette collection est en fait une liste chaînée sous forme de classe :

attributs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
    CSet_int_unit* colstart; // pointeur sur le premier élément
    int nelem; // nombre d'éléments chaînés
"CSet_int_unit" est une structure dont voici la déclaration :

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
// .h
struct CSet_int_unit
{
    int valeur;
    CSet_int_unit* next;
 
    void init(int val);
    void setTarget(CSet_int_unit* );
 
};
// .cpp
void CSet_int_unit::init(int val){
    valeur = val;
    next = NULL;
}
void CSet_int_unit::setTarget(CSet_int_unit* p){
    next = p;
}

j'ai peu à peu commenté puis dé commenté les instructions et je tombe donc sur celle qui suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
        bool CSet_int::add(int n=0){
            CSet_int_unit* tmp = colStart;
            while(tmp->next != NULL){ tmp = tmp->next;} // ça plante là.
             if(tmp->next == NULL){
                tmp->next = new CSet_int_unit;
                tmp->next->init(n);
                nelem++;
                return true;
            }
            return false;
        }
Sensée tester si la structure courante est la dernnière (son attribut pointeur est null) le programme plante quelqu'un aurait une idée ?

Merci d'avance !