Question newbie :: initialisation vecteur ...

gackie Messages postés 3 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 25 février 2005 - 25 févr. 2005 à 21:11
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 26 févr. 2005 à 14:16
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

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
25 févr. 2005 à 21:31
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.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
26 févr. 2005 à 14:11
Oui, vect devrai être un T* et non un T**
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
26 févr. 2005 à 14:16
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!)
0
Rejoignez-nous