Appel à une fonction en C

Fermé
stroumpf - 10 juin 2008 à 01:39
 stroumpf - 10 juin 2008 à 21:33
Bonsoir à tous,
C la 1ere fois que je programme en C
J'ai un souci c'est que j'arrive pas à faire un appel à ma fonction dans le main;

int main(int argc, char *argv[])
{ char c;
int N;
liste_mot* s =NULL;
Affiche_mots(s);
printf("\n\n la liste filtree \n\n");
frequent( &s , 1);
Affiche_mots(s);
calcul_nbre_mot(b);
printf("%d",N," mot((s))");

scanf("%c",c);
return 0;
}

en fait tout marche nikel jusque l'appel de la fonction calcul_nbre_mot(b); il m'affiche pas le nbre de mots

void calcul_nbre_mot(liste_mot *s)
{
liste_mot* m=s;
int N=0;
while(m!=NULL)
{
N=N+1;
}
printf("\n");
}

normallement le programme m'affiche le nbre de mots qui est N, mais la il m'affiche rien :(
merci

1 réponse

zabrat Messages postés 14 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 20 novembre 2008 2
10 juin 2008 à 06:01
ton probleme c'est que la variable N est locale dans la procedure calcul_nbr_mot .donc soit tu la passe a la procedure en parametre(passage par reference par ex: calcul_nbr_mot(s ,&n)), soit tu transforme ta procedure en une fonction qui retourne la longueur du mot ce qui est plus simple:
int calcul_nbr_mot(liste_mot *s){
.
.
.
return(N);
}
puis dans le main tu appelle la fonction comme suit: int N=calcul_nbr_mot(s);
2
merci Zabra ,
0