Forum Programmation.c++ passage d'un tableau de chaine à une fonction

Posté par  .
Étiquettes : aucune
0
18
sept.
2007
Bonjour,

J'ai un tableau qui est déclare comme ça : char tbl[10][20]
je dois passer ce tableau à une fonction, comment faire ??
j'ai fait des essais de char **, mais rien de concluant...et je ne trouve pas d'aide dans mes bouquins....

Quelqu'un sait il comment faire ?

merci.
  • # Pointeurs.

    Posté par  . Évalué à 2.

    j'ai fait des essais de char **, mais rien de concluant...et je ne trouve pas d'aide dans mes bouquins....


    C'est pourtant la signature de ce que tu as défini. Ca veut quoi, "rien de concluant" ?

    Si ton problème est de passer le contenu entier en une fois, en conservant l'indication de taille de ton tableau à deux dimensions, il faut utiliser un objet qui gère le tout (car le travail doit être fait même s'il est masqué par une couche d'abstraction). Dans ce cas, tu auras peut-être envie d'aller voir du coté des std::vector<>. Mais vérifie d'abord si tu ne peux pas débugguer ce que tu as fait.
    • [^] # Re: Pointeurs.

      Posté par  . Évalué à 2.

      Sinon c'est bien :


      #include
      using namespace std;

      void fonction (char ** p)
      {
              cout << p[0][0] << endl;
      }

      int main (void)
      {
              char tbl[10][20];

              fonction (tbl);

              return 0;
      }
      • [^] # Re: Pointeurs.

        Posté par  . Évalué à 3.

        Non, il faut que tu spécifies toutes les tailles sauf la première dans ton argument. Ex: void function(char p[][20]). Autrement, le compilateur n'a aucun moyen de s'en sortir.
        • [^] # Re: Pointeurs.

          Posté par  . Évalué à 1.

          Bravo Antoine Bûsch !! C'était bien ça qu'il fallait coder :

          void mafonction(char p[][20]);

          parce que void mafonction(char **p) ne fonctionne pas.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.