[C] Pointeur & tableau

Résolu/Fermé
Debhian - 11 oct. 2005 à 21:32
 dadou - 12 déc. 2007 à 02:10
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

kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 523
12 oct. 2005 à 00:45
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.
0
Je te remercis :)
0
Pour aider les autres, je laisse un petit code d'exemple:
http://debhy.free.fr/main.txt
0
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 523
12 oct. 2005 à 17:38
Merci :-)
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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