Voilà mon problème j'ai fait le programme suivant :
#include <list>
#include <iostream>
using namespace std;
void getItem(list<int> L, list<int>::iterator & iter){
int i=1;
iter=L.begin();
while(i<3){
iter++;
i++;
}
cout<<"la valeur trouvée dans la fonction = "<<(*iter)<<"\n";
}
int main(){
list<int> L;
list<int>::iterator iter;
int i=1;
L.push_back(0);
L.push_back(1);
L.push_back(2);
L.push_back(3);
L.push_back(4);
iter=L.begin();
while(iter != L.end()){
cout<<"Le "<<i<<"eme element est : "<<(*iter)<<"\n";
iter++;
i++;
}
getItem(L,iter);
cout<<"val = "<<(*iter)<<"\n";
if(iter!=NULL){//si l'iterateur à une valeur
int val = (*iter);
cout<<"la valeur trouvee est : "<<val<<"\n";
}
}
La trace d'exécution est la suivante :
Le 1eme element est : 0
Le 2eme element est : 1
Le 3eme element est : 2
Le 4eme element est : 3
Le 5eme element est : 4
la valeur trouvée dans la fonction = 2 //la valeur est correcte
val = 48
la valeur trouvee est : 48
Et mon problème se situe à la ligne en rouge. Dans la fonction que
j'appelle la valeur contenu dans l'itérateur est bien 2 mais quand je
retourne dans le programme principal, il me donne une valeur à la con
et je vois pas pourquoi.
Si quelqu'un peut me donner un coup de main je serai très contente

.

Ah l'informatique c'est bien quant même quand ça marche
