Question newbie :: initialisation vecteur ...

Signaler
Messages postés
3
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
25 février 2005
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
j'ai une classe vecteur qui doit contenir des chaines de caractères.
Une variable membre vect qui est un char**
mais il râle au niveau du constructeur quand j'initialise une autre que la 1ere case

Vector::Vector(int nb){
*vect = new char*[nb];
for(int i = 0; i<nb; i++){
*(vect[i]) = new char;
}
capacity = nb;
counter = 0;
};

Où est-ce que je foire???

3 réponses

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Ce serait pas plutot ca ?



Vector::Vector(int nb)

{
vect = new char*[nb]; <=== pas de * a vect.
for(int i = 0; i<nb; i++)

{
vect[i] = new char; <====== pas de * ici non plus.
}
capacity = nb;
counter = 0;
};


PS: essai de régider plus clairement un prgm quand tu le postes.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Oui, vect devrai être un T* et non un T**
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Normal que le compilateur rale: *(verct[i]) est un char et tu essaie de
lui allouer de l'espace, ce qui n'a pas de sens (c'est déja alloué par
l'allocation que tu fais en premier!)