Problème de pointeur NULL ?
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 :cry:)
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:
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:
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:
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 !:P