Problème avec vector<char>

Signaler
Messages postés
31
Date d'inscription
dimanche 23 juillet 2006
Statut
Membre
Dernière intervention
3 décembre 2008
-
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
-
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

Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
Dans la déclaration de chercher_trans tu prends tab1 par valeur alors que dans l'implémentation c'est par référence.