Retour de la valeur d'une variable dans une fonction.

did2604 Messages postés 29 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 19 août 2008 - 29 nov. 2003 à 11:51
did2604 Messages postés 29 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 19 août 2008 - 30 nov. 2003 à 21:49
Bonjour,
J'ai un petit problème avec la fonction suivante. Dans ma fonction, j'incrémente une variable nommée vt2. Je souhaite retourner dans le main cette variable, mais ça n'a pas l'air de fonctionner. J'ai inclu un premier printf juste avant le return qui lui m'indique la bonne valeur de ma variable. Par contre, une fois de retour dans le main, juste avant de passer à la fonction recup, la valeur de ma variable vt2 n'est plus la même. Pourtant, le prototype et le return me semblent corrects :question)

int write_vec (int *,int *); /* prototype */
void recup (int *,int); /* prototype */
void main ()
{
-----
write_vec (&v2[0],&t[0][0]);
printf ("Valeur de vt2=%d",vt2);
recup (&v2[0],vt2);
-----
}

/* Fonction write_vec */
int write_vec (int *v2,int *t)
{
#define VNUL int c,l,u,vt3;
for (c=0,vt2=0,u=0;c<10;c++)
{
for (l=0;l<100;l++)
{
if (*(t+l*10+c)!=VNUL)
{
v2[u]=(t+l*10+c);
u=u+1;
vt2++;
}
}
}
printf ("Valeur de vt2=%d",vt2);
return (vt2);
}

4 réponses

crocejf2000 Messages postés 260 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 27 août 2008 1
29 nov. 2003 à 12:38
Salut
Essay ca:

void main ()
{
-----
vt2 = write_vec (&v2[0],&t[0][0]);
printf ("Valeur de vt2=%d",vt2);
recup (&v2[0],vt2);
-----
}

A+,Hart
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
29 nov. 2003 à 14:30
Salut,
Elle est déclarée ou cette variable ?
0
D1m3x Messages postés 402 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 21 juillet 2005 1
30 nov. 2003 à 11:49
c'est vrai je ne parvient moi non plus pas à détecter la déclaration de la variable vt2 que tu utilise dans deux fonctions, sans déclarer :| lol ou bien tu nous cache du code essentiel :)
[DmX]
0
did2604 Messages postés 29 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 19 août 2008
30 nov. 2003 à 21:49
Merci à tous pour vos réponses :)
Désolé de me manifester aussi tard, mais je n'arrivais pas à me logger :(
Merci à crocejf2000 pour sa bonne réponse. En fait, une petite erreur est intervenue, je déclare vt3, mais c'est vt2, mais sur mon code, j'avais la bonne "version" ;)

Merci encore de m'avoir répondu. Mon code fonctionne parfaitement à présent ;)
Bonne soirée à tous,
Did'
0
Rejoignez-nous