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. 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,
    0
    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;
      }
      0
      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++;
        }
        @+
        0
        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,
          0
          1. Merci beaucoup, j'ai bien compris mes erreurs, merci a vous.
            @+
            0