mise a jour d'une std::list a partir d'une variable locale
Bonjour, j'aimerais savoir si le code suivant vous semble correct:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| void fonctionBidon(void) {
.
.
std::list<std::string> listeClients;
updateList(listeClients);
// à cet endroit, listClients contient elle des données valide?
.
.
}
void updateList( std::list<std::string> &listeClients)
{
unClient client_t; //client_t est une struct contenant entre autres l'âge et le nom du client...
for (int x=0; x< nbClients; x++) {
unClient = loadClient(x); //récupère les infos d'un client
if (unClient.age > 65) {
string nomClient(unClient.nom); // unClient.nom est de type char *
listeClients.push_back(nomClient);
}
}
} |
Je me demande plus particulièrement ce qui ce passe lorsque le programme quitte la fonction 'updateListe'. La variable 'nomClient' sort de sa zone de visibilité et est donc détruite. Alors je me demande si 'listeClient' est bien valide après l'appel de la fonction 'updateList'.
merci de votre aide.