Bonjour,
Comment définir l'équivalent d'un char** en ada. Un char* est un Char_Array mais il me manque la deuxième dimension. Quelqu'un peut-il me donner un coup de main.
Merci,
Bonjour,
Comment définir l'équivalent d'un char** en ada. Un char* est un Char_Array mais il me manque la deuxième dimension. Quelqu'un peut-il me donner un coup de main.
Merci,
C'est quoi un char** ?
Bonne nuit.
un char** revient pour simplifier à un tableau de char*
C'est cela qui est utilisé en C pour récupérer les argiuments de la ligne de commande.
J'ai lu la spec et j'ai compris qu'il n'y avait pas d'équivalent à argv. Il y a Argument qui doit avoir un indice pour que l'on puisse récupérer un argument précis.
Je posais la question du char** pour recomposer mon argv à partir de cette commande. Si vous avez une autre solution je suis preneur.
Tu pourrais reconstituer la chaîne.
Si non pour le char**, mois je crois, que c'est un pointeur sur un pointeur sur un char. Alors, je connais un peut C, mais je ne sais pas comment tu va récupérer l'adresse de argv. Malgré l'architecture suggéré par le type char**, je pense que tu devrais essayer un unchecked_conversion sur une adresse de Char_Array. Il me semble que j'ai déjà fais ça.
chaque argument sera dans un char_array mais j'ai besoin de mettre chaque arg dans un autre tableau. Comment faire?
J'ai peur de ne pas bien comprendre ta question.
Ceci dit, d'après ce que j'en ai compris, tu peux toujours te créer un tableau de Unbounded_String dont la taille vaut Argument_Count puis itérer en copiant le retour de Argument(index) dans chaque "case" de ton tableau.
En C, argv est un tableau de chaînes de caractères et généralement, un char** est un tableau de chaînes et de facto, un tableau à deux dimensions de caractères. Le type qui s'en rapproche donc le plus en Ada est un tableau de chaînes dont la taille n'est pas connue à la compilation.
Le paquetage prédéfini Ada.Command_Line permet de récupérer les arguments de la ligne de commande.
les objets C **char sont complètement dynamiques : la taille est inconnue à la compilation au contraire d'un objet statique de type array(1..10) of String (1..100)
Le type dynamique en Ada est Unbounded_String pour *char.
Sinon voir les paquetages Interfaces.C et Interfaces.C.String pour le mapping Ada / langage C
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager