Bonjour!
J'aurais une petite question pratique.
Lorsque j'utilise un Itérateur de vecteur comme celui ci
Lors de l'instance de cet itérateur, suis je dans le vrai si je dis que cet itérateur alloue de la mémoire pour pouvoir stocker Admin(qui ici est un vecteur de char*)?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 IterateurVec<char *> it(Admin); do{ if((char *)it!=NULL) { if(strncmp((char *)it, loginPass, 61)==0) //Si on a une correspondance { *tu=typeUtilisateur(nomUtilisateur); strncpy(currentUser, nomUtilisateur, 30); return 1; } } }while(++it);
Le fait est que lorsque j'utilise cet itérateur, la fonction se passe sans souci et ensuite je dois lancer un menu qui me lache un segmentation fault. Le core dumped survient pendant la ligne de code qui est en gras ci dessous:
Lorsque je n'utilise pas l'itérateur plus haut, le menu se lance sans problème. Mais avec l'utilisation de l'itérateur, le segmentation fault survient.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 menu::menu(char *opt[], int nbElemC) { nbElem=nbElemC; for(int i=0; i<nbElem; i++) { nom[i]=new char[strlen(opt[i])+1]; strcpy(nom[i], opt[i]); } }
Dois-je libérer la mémoire alloué par l'itérateur pour pouvoir lancer mon menu? Si oui, comment faire?
Merci d'avance.
Edit: Je sais que le char*, c'est moins beau que le string. Donc d'avance désolé
Partager