[C++] Pointeur & Tableau ? help

Romiinet Messages postés 596 Date d'inscription   Statut Membre Dernière intervention   -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

pour passer un tableau a une fonction j'utilise souvent la suivante :

dans main :
int table[9];
fonction1(table);

prototype :
void fonction1(int *table);

ce qui est pratique puisque dans ma fonction je peu ensuite utilise "table" comme bon me semble, comme si elle été déclarer dans cette fonction,

par contre lorsque je veux passer a tableau a plusieurs dimension sa se corse un peu :/

j'ai essaye plusieurs façon mais rien a faire j'ai toujours une erreur de compilation :/

pourrais vous m'indiquer comment crée un prototype qui accepterai de passer un tableau a 2 ou 3 dimension s'il vous plait ?

et un exemple d'appelle de la fonction si se n'est pas trop demander.

merci =)
A voir également:

2 réponses

Romiinet Messages postés 596 Date d'inscription   Statut Membre Dernière intervention   107
 
personne ?
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Le problème des tableaux à plus d'une dimension c'est qu'il n'y a pas d'équivalent en pointeur.
int** c'est équivalent à un tableau de (int *) c'est à dire un tableau de pointeur. Les mémoires ne sont pas continue et tu peux avoir des "tableaux" de taille variable.
int t[m][n] défini un vrai tableau à deux dimension de taille m*n. Il me semble que dans ce cas là les mémoires sont continue. il me semble que dans ce cas là un élément t[i][j] == t[i+j*m] (ou dans le genre) c'est à dire qu'à tout moment le programme doit connaitre au moins une dimension du tableaux (2 en 3D, 3 en 4D etc.).
Tout ça pour t'expliquer que tu ne peux pas passer par un pointeur, il faut donner un tableau en argument avec une taille :
void fonction(int t[m][]);
Il y a pas mal d'imprécision dans ce que je viens de te dire, mais il y a déjà pas mal de discutions sur ce forum traitant des tableaux en C, où tu trouvera pleins d'informations.
0