Bonjour, j'aimerais savoir s'il est possible de faire une fonction qui renvoie 2 éléments. Si oui comment il faut faire.
Merci.
Version imprimable
Bonjour, j'aimerais savoir s'il est possible de faire une fonction qui renvoie 2 éléments. Si oui comment il faut faire.
Merci.
une fonction ne peut renvoyer qu'une seule valeur
a partir de la plusieurs solutions sont possibles :
1 - retourner un pointeur vers une structure qui contient les 2 valeurs que tu veux
2 - passer des pointeurs vers ces 2 variables en parametre de la fonction et modifier les valeurs pointees dans la fonction
Soit c'est vrai mais une fonction peut aussi retourner la structure directement et du coup, tu auras tes deux éléments.Citation:
Envoyé par straasha
Par contre,
- C'est déconseillé car cela est très coûteux
-> C'est donc quelque chose que personne de sérieux ne ferait...
Tu peux aussi passer le pointeur vers la structure à remplir.
Jc
Beaucoup moins joli mais qui fonctionne également, un pointeur ainsi qu'une instruction return,...
C'est possible en retournant une structure, mais on évite, car ça fait des copies inutiles. (Mais il y a des exemples dans la bibliothèque standard du C : div(), idiv().)Citation:
Envoyé par sandball22
La bonne solution est de définir une structure 'resultat', d'en instancier une (une variable locale suffit en général) et de passer son adresse à la fonction en mode lecture/ecriture :
Il est d'usage que la fonction retourne un etat (0=OK, 1=ERR) pour indiquer si les résultats sont valides.Code:int f (struct resutat *p)
a moins que ce que tu veuilles dire soit :
une fonction qui ressort 2 valeurs (et non pas retourne), auquel cas bien sûr que c'est possible...