Boudouillou
Messages postés8Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention19 juillet 2006
-
6 avril 2006 à 14:30
Boudouillou
Messages postés8Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention19 juillet 2006
-
6 avril 2006 à 16:34
Salut à tous!
J'ai le problème suivant:
En résumant voici mon programme:
- un header fichier.h dans lequel je déclare en private n et vector v
- un fichier.cpp dans lequel j'ai deux fonctions
fonction1()
n = 2;
v.push_back(1);
cout << n << endl;
cout << v[0] << endl;
fonction2()
cout << n << endl;
cout << v[0] << endl;
-un main dans lequel je fais appel à mes fonctions
void fonction1();
void fonction2();
RESULTAT: il affiche correctment n(=2) et v[0](=1) de fonction1() et correctement n de fonction2() mais pour l'affichage de v[0] h'obtiens un SEGMENTATION FAULT.
On dirait que n est connu à travers toutes les fonctions de ma classe fichier alors que le vecteur ne l'est pas.
Etant débutant, j'ai essayé en déclarant public le vecteur mais ca ne marche pas plus.
De plus j'ai une petite question qui peut sembler con.
Après un appel de fonction1() (qui est de type void) dans mon main, je n'arrive pas a récupérer la valeur de n. Dans des fonctions plus compliquées, j'aimerais récupérer des noms de fichier par ex pour les passer en argument d'une fonction3() dans mon main.
ben92600
Messages postés56Date d'inscriptiondimanche 13 novembre 2005StatutMembreDernière intervention11 juillet 2006 6 avril 2006 à 16:25
pour ton probleme de void c est normale que tu puise pas recupere de
valeur puique c est le but d un void si tu veu recupere une valeur n
utilise int ou long si c est une valeur entier et si tu est avec des
nombre a virgule utilise un double ;)
pour ton deuxieme probleme je suis pas sur de taider puisque tu semble etre en c++ mais voila une solution en c
donc pour recupere une chaine de caractere si tu la malloc il suffit de
recupere la valeur dans un char * et donc avoir remplacer ton void de
retout par char *
j espere que j ai bien dit les chose sans trop tembrouiller
Boudouillou
Messages postés8Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention19 juillet 2006 6 avril 2006 à 16:34
Merci l'ami.
Pour l'autre problème j'ai trouvé. Je refaisais une déclaration du vecteur ce qui fait qu'en sortie de fonction1 il était détruit.
Merci de tex explications sur void, c'est bien embetant mais bon.
Si je veux mettre un nom de fichier en argument d'une fonction2 dans mon main alors que celui-ci est calculé dans une autre fonction1 dans une classe, ca n'a pas l'air possible, a moins que les deux fonctions soient dans la meme classe. Reste la piste de friend a utiliser je pense. J'vais bûcher ça.