[C] Pointeur & tableau

Résolu
Bonjour,

Je voudrai savoir comment est-il possible de fournir un pointeur de tableau multi dimentionnel dans une fonction ?

en effet, dans la norme, main peut avoir un argument char *table[] qui renvoie sur un tableau de tableaux de chars constants

j'ai essayé par moi meme de reproduire une tel variable, mais je n'y arrive pas. Comment on pourrai definir un tel tableau ?

Le but est de renvoyer un tableau style
table[x]="xxx"

voila, merci

5 réponses

  1. Modérateur
    Salut,

    Si tu connais le nombre d'index dans ton tableau, il faudrait déclarer ta fonction comme ceci:
    type fonction(char (*argument)[nb_index]);


    En fait tout est dit ici:
    http://www.isty-info.uvsq.fr/~rumeau/fclc/fclc007.html#q_2

    Tu peux même te débrouiller si tu ne connais pas la taille du tableau à l'avance.
    -1
    1. Bonjour,

      g un problème avec les pointeurs,
      je déclare mon objet Particle ptemp;

      je veux que ptemp.X pointe sur la meme adresse du pointeur p.X
      avec p une particule que j'ai déja déclarée et initialiée

      j'écris ptemp=p; mais je trouve que &ptemp.X est differente de &p.X
      j'ai essayé avec ptemp.X=p.X meme problème,
      je en sais pas peut etre je n'arrive pas encore a saisir la notion du pointeur et d'adresse.
      merci
      voila ma classe particule

      class Particle //Une particule
      {
      public:

      Particle();
      int N;
      TSP *PTSP2;

      int rank;
      int *X; // la position actuelle
      int *bestX; // sa meilleure solution jusqu'a present
      int *bestX_G; // meilleure solution globale
      double f; // longueur de la solution actuelle
      double bestF; // longueur de la meilleur solution personnelle

      Velocity V; // sa vitesse acuelle

      void init();

      ......
      };
      0
      1. Bonjour,
        Je voulais savoir l'analyse des déclarations suivantes:
        int ((*t)[3])();
        float (*t[4][2])(double);
        int (*(*(*t())[])())[];
        double *t(int*[],double);
        int *((*t)[3])(char *,int (*)[]);
        0