Problème avec vector<char>

gargourifahmi Messages postés 31 Date d'inscription dimanche 23 juillet 2006 Statut Membre Dernière intervention 3 décembre 2008 - 12 août 2007 à 21:33
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 - 13 août 2007 à 10:11
Salut,

J'ai un pb dont je n'ai pas pu résoudre.

En fait j'utilise un vecteur de caractère pour stocker des variables sous forme de caractères.

Lors de la compilation j'obtient une chose dont je ne comprends pas.


main.o: In function `automate::ajouter_noeud(std::vector<noeud*, std::allocator<noeud*> >, int, noeud*)':

main.cpp.text+0xddb):
undefined reference to `automate::chercher_trans(std::vector<noeud*,
std::allocator<noeud*> >, std::vector<char,
std::allocator<char> >&, int, char)'

collect2: ld a retourné 1 code d'état d'exécution

make: ***[liste2] Erreur 1


Voila ce que j'utilise comme code:

Declaration:

void chercher_trans(vector<noeud*> tab,vector<char> tab1,int m,char c);

Appel:
void automate::ajouter_noeud(vector<noeud*> tab,int m,noeud *e)
{
char c;bool trouve=false;
vector<char> tab1;
noeud *e2=NULL;noeud *e3=NULL;
cout<<"choisir le type de noeud à ajouter ""i"" pour input et ""o"" pour output \n";
cin>>c;
chercher_trans(tab,tab1,m,c); ....

Utilisation:

void chercher_trans(vector<noeud*> tab,vector<char> &tab1,int m,char c)
{
noeud *e1=NULL;noeud *e2;

e1=tab[m-1];
if(c=='i')
{
while(e1->suiv1 !=NULL)
{
e2=e1->suiv1;
e1=e2;
tab1.push_back(e1->a);
}
}
elseif(c=='o')
{
while(e1->suiv1 !=NULL)
{
e2=e1->suiv1;
e1=e2;
tab1.push_back(e1->a);
}
}
}


Je suis vraiement pressé et ça me bloque dans une étape critique pour moi.

Merci de m'aider.

1 réponse

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
13 août 2007 à 10:11
Dans la déclaration de chercher_trans tu prends tab1 par valeur alors que dans l'implémentation c'est par référence.
0
Rejoignez-nous