Bonjour,
Envoyé par
lrgtk
1 - comment passer un tableau dans un char (argv)
2 - comment retourne ton une valeur depuis main
Il n'y a pas de manière à la fois propre et simple de faire de ce que tu veux faire. La valeur de retour de main() est l'état du processus. C'est celle que tu retrouves par « $? » en Shell et ERROR_LEVEL sous D.O.S, et qui est exploitée par les tests conditionnels tels que ?? ou || dans le Shell, pour savoir si un programme s'est déroulé normalement ou pas. Tu ne peux pas t'en servir pour échanger des données.
En l'absence d'API dédiée, il faut utiliser les arguments et la sortie standard. « argv[] » est un tableau C initialisé en fonction de ce qu'il y a sur la ligne de commande, laquelle doit contenir des arguments séparés par des espaces. Ça tombe bien, bash (je suppose que tu utilises ce shell) te permet d'afficher le contenu entier d'un tableau séparé par des espaces en écrivant ${tableau[*]}. Donc :
$ ./tonprogramme ${tableau[*]}
… te permet de résoudre la première partie de ton code.
Pour le reste, tu peux initialiser en une seule fois un tableau bash avec les parenthèses : « nombres=(un deux trois quatre cinq) », les éléments étant là encore séparés par des espaces. Il faut donc que ton programme C écrive le résultat de cette manière sur la sortie standard, et que tu t'en serves comme paramètre avec les opérateurs « ` » par exemple.
$ resultat=(`./tonprogramme ${tableau[*]}`)
Partager