Problème Language C

Résolu
Bonjour,
J'apprend le C et donc je fait beaucoup de tentative, j'aimerai pourvoir séparer mes "mini codes" lisiblement dans l'invite de commande.
J'ai donc créer cette fonction nommé "ligne".

int ligne(int *nbr); =>header

int ligne(int *nbr)
{
printf("___________%d___________\n\n", *nbr);
*nbr=*nbr+1;
}
=> ccp
(j'ai avant introduit int w=0 dans mon main)
je pose dans main
ligne(&w);

afin que lorsque je la marque la première fois il me face ___________0___________ la seconde fois que je lutilise ___________1___________ la 3ème ___________2___________
au final :
___________0___________
programme0
___________1___________
programme1
___________2___________
programme2 ...etc

Le problème c'est que le nombre reste bloqué à 0, j'ai beau chercher je ne comprend pas pourquoi. Pourrize vous detaillez la reponse afin que je comprenne comment fonctionne le "décompte"

Merci de votre contribution.
Configuration: Windows 7
Firefox 3.5.7

5 réponses

  1. Merci beaucoup, j'ai bien compris mes erreurs, merci a vous.
    @+
    1. Contributeur
      Effectivement, il y a plusieurs erreurs.
      Voici ton code avec les corrections apportées :
      #include <stdio.h>
      #include <stdlib.h>
      #include <time.h>
      #include <math.h>
      
      
      int ligne(int *nbr)
      {
      printf("___________%d___________\n\n", *nbr); /* rajout du pointeur*/
      (*nbr)++; /* rajout des parenthèses sinon tu incrémentes l'adresse mémoire*/
      }
      
      
      int main()
      {
      
      int w=0;
      
      
      ligne(&w); /*rajout de l'esperluette (&) pour passer l'adresse mémoire*/
      ligne(&w); /*rajout de l'esperluette (&) pour passer l'adresse mémoire*/
      ligne(&w); /*rajout de l'esperluette (&) pour passer l'adresse mémoire*/
      ligne(&w); /*rajout de l'esperluette (&) pour passer l'adresse mémoire*/
      ligne(&w); /*rajout de l'esperluette (&) pour passer l'adresse mémoire*/
      
      return 0;
      }
      ~     
      


      Cdlt,
      1. Salut,
        dans ta fonction tu dois passer l'adresse de w:
        ligne(&w);
        Par ailleurs, ta fonction est de type void car elle ne retourne rien...:
        void ligne(int *nbr)
        {
        printf("___________%d___________\n\n", *nbr);
        *nbr++;
        }
        @+
        1. #include <stdio.h>
          #include <stdlib.h>
          #include <time.h>
          #include <math.h>

          int ligne(int *nbr)
          {
          printf("___________%d___________\n\n", nbr);
          *nbr++;
          }

          int main()
          {

          int w=0;

          ligne(w);
          ligne(w);
          ligne(w);
          ligne(w);
          ligne(w);

          system("PAUSE");
          return 0;
          }
          1. Contributeur
            Salut,

            Normalement, ça doit marcher. Il y a sûrement une erreur ailleurs.
            Pourrais-tu poster ton code (juste la partie en question).

            Cdlt,