[C] Un petit problème à résoudre

Discussion dans 'Web, design' créé par Machiavel666, 18 Décembre 2003.

Statut de la discussion:
Fermée.
  1. Online
    Findecano ex membre
    :D Trop fort... :D
    Findecano, 21 Décembre 2003
    #21
  2. Offline
    Xaab Touriste
    :idea: :p :D J'vais déposer ma candidature :wink:
    Xaab, 21 Décembre 2003
    #22
  3. Online
    piet ex membre
    Juste pour que moi le petit piet il comprenne quelque chose...

    On passe les paramètres en argument... donc, la fonction main de la fonction ne se définit pas comme tout le monde le dit mais de cette façon :
    Code:
    void main(int argc, char * argv[])
    argc est le nombre + 1 d'éléments entrés en paramètres...
    dans le main, il suffit donc :
    Code:
    void main(int argc, char * argv[])
    {
         int i;
         for(i=argc-1 ; i >0 ; i++)
         {
              printf("\t%s", argv[i];
         }
    }
    
    argv[0] est le nom du fichier... on en a pas besoin, donc, on ne prend pas 0.


    Et évidemment on a besoin de rien d'autre... on ne crée aucune variable supplémentaire...
    on les lit simplement dans l'autre sens!

    qui réfute?
    piet, 22 Décembre 2003
    #23
  4. Offline
    Xaab Touriste
    char* argv[] est un pointeur désignant l'adresse mémoire d'un tableau contenant une chaine de caractères. Il me semble.
    Donc si c'est ça tu n'a pas le droit. Car l'usage d'un tableau est interdit.

    Enfin je suis pas super sûre :oops:
    Xaab, 22 Décembre 2003
    #24
  5. Offline
    oui mais bon, la solution est valide aussi car c'est un buffer et non une allocation faite par le pgmeur...
    TITM4v3rick, 23 Décembre 2003
    #25
  6. Offline
    Xaab Touriste
    Abon! intéréssent. J'ai encore beaucoup à apprendre :)
    GG TITM4v3rick :wink:
    Xaab, 23 Décembre 2003
    #26
  7. Offline
    zoheir cvm.mangaleet()
    arf je suis pas sûr, tu utilises qd même un pointeur vers un tab.

    Faut voir ce que dis machiavel ;)
    zoheir, 23 Décembre 2003
    #27
  8. Online
    Machiavel666 ex membre
    Allez autant pour moi, j'ai pas dû être assez clair quand j'ai posé ma question.

    Bon évidemment si je le reprécise seulement maintenant je vais me faire huer...mais bon je prend le risque.

    Oui c'est vrai que les argument d'un programme ne sont pas des emplacement de mémoire alloué spécifiquement par le programmeur. Mais c'est quand même un tableau ( et oui il suffit de regarder les [] ).

    Et puis c'est pas très pratique de le mettre dans le main parce que c'est pas très réutilisable (mais bon là je pousse p.e. un peu).

    Par contre je sais pas ce qu'en dirait les spécialistes du C mais je trouve qu'une fonction à argument variable respecterait p.e. plus les conditions, quoique.
    Pour ça je demande votre avis.
    Machiavel666, 23 Décembre 2003
    #28
  9. Online
    piet ex membre
    mouais,.. Ben moi, je trouve qd même que ma solution est valable car le programmeur ne donne pas de tableau, c'est le programme qui prend les valeurs dans un **argv. On ne crée rien, et c'est tout à fait portable quel que soit le nombre d'entiers passés en variable!

    Bon, je le refais avec une fonction à paramètres variables? lol

    non, en fait, je crois que cette option est à éviter...
    Pcq en la définissant, il n'y a pas de problème :
    Code:
    void FctAfficheInverse (int premier, ... );
    telle quelle pourrait prendre autant de paramètres que l'on veut.
    Mais c'est pour gérer l'envoi... donc, le problème reste le même...

    Moi, j'aime mieux ma première solution!
    piet, 23 Décembre 2003
    #29
Statut de la discussion:
Fermée.