Les Allergies
Alimentaires
Posez votre question Signaler

[C++] Pointeur & Tableau ? help

Romiinet 600Messages postés 17 mai 2008Date d'inscription 25 août 2010Dernière intervention - Dernière réponse le 23 févr. 2010 à 14:18
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 =)
Lire la suite 

[C++] Pointeur & Tableau ? help »

2 réponses
Réponse
+0
moins plus
personne ?
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Ce document intitulé « [C++] Pointeur & Tableau ? help » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?