Fonction main

didier_68 -  
blurk Messages postés 487 Statut Membre -
bonjour a tous,

je debute en c++ et dans mes programme je rencontre souvent:

int main(int argc, char* argv[])

est ce que quelqu' un pourrai m'expliquer en detail ce que cette ligne veut dire et surtout dans quel cas l'utiliser (quand on declare des pointeur, des tableau,...)

merci d'avance
A voir également:

3 réponses

sam3000 Messages postés 1226 Statut Membre 144
 
cette ligne c'est le "point d'entree" de ton programme, c'est la première fonction qui sera exécutée,
le premier paramètre (argc) c'est un nombre indiquant combien ton programme (lorsqu'il est lancée en ligne de commande) a de paramètres
le second (argv[]) c'est un tableau de chaines pointants chacune sur l'argument dont tu donne l'index.
exemple,
tu as un programme compilé "monprog.exe"
tu le lance ainsi:
c:\>monprog +r -f fichier.txt

dans le programme tu as:
argc=3
argv[0]="monprog"
argv[1]="+r"
argv[2]="-f"
argv[3]="fichier.txt"

@*
0
didier_68
 
merci beaucoup pour tes explication!

juste une derniere petite question : lors de la conception d'un programme faut-il indiquer les valeurs (3 comme tu me l'a mis dans l'exemple) ou alors on met toujours argc,argv[] et c'est le compilateur qui fait le reste tout seul

merci
0
blurk Messages postés 487 Statut Membre 160
 
Salut

1/ on peut très bien faire
int main()

sans arguments, le compilateur l'accepte.
dans ce cas, adieu le "ouvrir avec" ou autres joyeusetés

2/ c'est à toi de gérer argc et argv pour leurs valeurs.
le compilateur ne peut pas deviner combien d'arguments il peut y
avoir au maximum, ni ce qu'ils peuvent accepter.
cependant, argc prendra automatiquement comme valeur le nombre d'arguments qui ont été passés au lancement du programme.

3/le nombre maximum d'arguments ? il n'y a pas d'autre limite
que la valeur maximale que peut contenir un integer (en principe).

cordialement
0