Explication fonction main

Bonjour,a tous voila j'ai passer pas mal de temps a bosse le c bon j'ai encor de tres gros progres a faire mais bon je me debrouille pas trop mal,bref j'aimerai en savoir plus sur la fonction main et notament sur ce que signifie les parametre qui lui sont passer a savoir: int main(int argc, char *argv[])
que veut dire argc,argv et pourquoi y a til un pointeur sur argv? merci d'avance pour votre aide
Configuration: Windows Vista
Internet Explorer 7.0

8 réponses

  1. argc c'est le nombre d'arguments que tu passes au programme quand tu veux l'exécuter
    et argv c'est un tableau qui contient les argument passé au programme
    0
    1. La fonction main
      Si un programme est une suite de déclarations, il doit contenir au moins une définition de fonction, la fonction principale de nom main ; l'exécution du programme commence par cette fonction. C'est elle qui appelera éventuellement les autres fonctions. Elle permet de communiquer avec le système d'exploitation. Dans sa forme la plus simple, c'est une fonction sans argument, qui retourne un int ; sa définition minimale est la suivante :

      int main() {
      return 0;
      }
      0
      1. oki je comprend le premiers argc mais tj pas argv pk utiliser un tableau pourriez vous m'eclairer d'avantage merci
        0
        1. oik alors donc apres avoir relu les commentaire si je comprend bien les argument que je passe via main son copier dans un tableau en gros c'est ça n'est ce pas ?
          0
          1. voila c'est a peu pres ça il sont copié dans argv
            0
        2. la fonction main avec ce prototype :

          int main(int argc, char **argv)

          permet de récupérer les éléments en ligne de comment.

          argc : nombre de parametres

          argv : tableau contenant les parametres

          Supposons qu'à l'execution, tu tapes :

          ./exo un deux trois quatre

          Dans ce cas, argc vaudra 5

          argv[0] contiendra ./exo

          argv[1] contiendra un

          argv[2] contiendra deux

          argv[3] contiendra trois

          argv[4] contiendra quatre
          0
          1. argv est un tableau de char * donc de chaine de caractere
            par exemple tu veux lancer ton programme avec trois arguments
            alors tu tapes la ligne de commande
            ./prog un deux trois
            a ce moment argc vaut 4 et tu as
            argv[0] vaut prog
            argv[1] vaut un
            argv[2] vaut deux
            argv[3] vaut trois
            tu remarques bien que chaque case du tableau argv contient un char * (prog,un,deux,etc..) voila pourquoi c'est un tableau
            j'espere que tu as mieux compris la ;)
            0
            1. Modérateur
              Salut,

              ./prog un deux trois
              a ce moment argc vaut 4 et tu as
              argv[0] vaut prog


              en fait argv[0] vaut ./prog
              0
            2. @lami20joui merci d'avoir corriger ;)
              0
          2. d'accord je comprend mieux maintenant (dsl d'avoir tarder a repondre) mersi pour ses explication jy voit plus clair maintenant,merci a vous tous et bonne soiree
            ps ayant bien comprit grace a vos explication je poste le message en resolut merci encore a vous
            0
            1. Modérateur
              Salut,

              et voici l'exemple de ce que petite info t'as donné
              lami20j@debian:~$ cat main.c
              #include <stdio.h>
              
              int main(int argc,char **argv){
                int i;
              
                for(i=0;i<argc;printf("argv[%d] : %s\n",i-1,argv[i++]))
                              ;
                return 0;
              }
              lami20j@debian:~$ gcc main.c -o main
              lami20j@debian:~$ ./main un deux trois quatre
              argv[0] : ./main
              argv[1] : un
              argv[2] : deux
              argv[3] : trois
              argv[4] : quatre
              
              0