Bonjours les zéros , je voudrais vous demander ce qu'est un tableau multidimensionel, si c'est avantageux , et comment les utiliser! Je vous assure avoir chercher sur le net , mais n'avoir rien trouvé de compréhensif !Merci d'avence
il ne faut pas que tu fasse attention au terme "multi dimensionel", c'est un mot qui peut faire fliper comme ça, alors qu'en fait c'est tout con.
Un tableau, tu sais ce que c'est? C'est une suite de case qui contiens des trucs, on est d'accord.
Il peut contenir des int, des double, des char, etc...
Qu'est ce qui empeche qu'il contienne des tableaux?
Tu peux creer un tableau qui contient des tableau qui contiennent des int. C'est donc un tableau à 2 dimensions.
Mais ces tableaux, peuvent encore contenir des tableau, ça devient un tableau à 3 dimensions, etc...
Enfait, pour vraiment comprendre exactement ce qu'est un tableau multidimensionel, il faudrait que tu saches c'est quoi le raport entre les tableaux et les pointeurs, je ne sais pas si c'est ton cas...
je voudrais vous demander ce qu'est un tableau multidimensionel, si c'est avantageux , et comment les utiliser!
C'est pratique pour représenter des données en 2 dimensions, comme une image, un plan, un damier, une matrice... Tant que tu n'en as pas l'utilité, tu ne trouveras pas ça ... utile !
Pense à une bataille navale, comment accéder aux éléments si ce n'est en utilisant un système de coordonnées cartésiennes...
Pour 3 dimensions, on pense à la '3D', volume, espace etc.
Au-dessus, ça devient un peu plus difficile pour nous pauvres êtres vivants en 3D (allez, 4 avec le temps...)
Mais pour des données, il n'y a pas de limite à une organisation en tableau multidimentionnels, tant que les données sont de même nature (type).
En faite l'avantage des tableau multidimensionnel est qu'on peut indiquer le nombre de mot et le nombre de lettre par mot qu'il y aura dans ce tableau
ex :
char citer_vos_noms[5][10];
le tableau aura donc 5 mot et ces mots seront maximum de 10 lettres !
dites moi si je me trompe je pense pas pas me tromper (je susi debutant aussi lool)
ba oui mais comment tu veux utiliser une boucle pour entrer des noms???
Et puis de toute façon, ton programme va planter quand tu arriveras à: citer_vos_noms[1][5] = "e";
car la derniere case du tableau c'est [1][4]
Un pointeur dans un char ? Tu crois vraiment que ça a un sens ?
Il faudrait peut être arréter de programmer au hasard et relire les cours...
Ca vaut pour tout ceux qui ont éssayé de répondre à la question originale. Relisez les cours au lieu d'essayer de faire rentrer n'importe quoi n'importe où...
Enfait, quand on est débutant, on a tendance à manipuler les tableaux un peu bêttement, en utilisant les crochet et tout.
Mais enfait, ça peut aider de savoir que un tableau c'est: une suite de case memoire (assées grandes pour contenir le type qu'on a choisit: des entiers, ou autre), et un pointeur qui pointe vers la premiere case du tableau. C'est comme ça que c'est fait enfait un tableau.
Alors un tableau qui contiens des tableau, enfait c'est quoi? Enfait c'est juste un tableau qui contiens des pointeurs. Voilà, et ensuite ces pointeurs vont pointer vers d'autres tableaux.
Par exemple, pour declarer un tableau d'entier, tu ferais: int tab[];
Mais pour declarer un tableau de pointeurs qui vont pointer vers des int, tu fais: int* tab[]
Voilà, à ce stade, tu as un pointeur dans chaque case du tableau. Maintenant ce qu'il faut, c'est faire une allocation dynamique pour faire pointer ces pointeurs vers la premiere case d'un nouveau tableau (et le faire pour chaqu'un des pointeurs, donc dans une boucle)
Savoir que ça marche comme ça, ça peut aider à comprendre. Par contre il faut savoir ce qu'est un pointeur, et ça, comme le dit matéo, c'est le + dur lol
Enfait, quand on est débutant, on a tendance à manipuler les tableaux un peu bêttement, en utilisant les crochet et tout.
Il n'y rien de bête là dedans. C'est fait pour, et je ne vois pas pourquoi on utiliserait pas les index pour adresser les éléments du tableau...
Citation : nonpoluant
Mais enfait, ça peut aider de savoir que un tableau c'est: une suite de case memoire (assées grandes pour contenir le type qu'on a choisit: des entiers, ou autre), et un pointeur qui pointe vers la premiere case du tableau. C'est comme ça que c'est fait enfait un tableau.
Tu parles du nom du tableau ? Pour être précis, c'est une non modifiable L-value, c'est à dire que c'est un objet pointeur mais que l'on ne peut pas modifer. Cet objet a pour valeur l'adresse du premier élément du tableau et pour type pointeur sur le type des éléments. Mais ce n'est pas un pointeur ordinaire. Il ne peut pas être modifié (pas de tab++, ni de tab=), mais il peut être initialisé. Par contre, on peut prendre son adresse &tab, qui a pour valeur l'adresse du premier élément du tableau et pour type 'pointeur sur tableau de n types de l'élement'
T a[10];
T *pa = a;
T(*p)[10] = &a;
Citation : nonpoluant
Alors un tableau qui contiens des tableau, enfait c'est quoi? Enfait c'est juste un tableau qui contiens des pointeurs. Voilà, et ensuite ces pointeurs vont pointer vers d'autres tableaux.
Tu l'embrouilles. Un tableau à 2 dimensions est aussi linéaire qu'un tableau à une dimension. Physiquement, il n'y a aucune difference, c'est une séquence d'objets identiques. Point.
Ce dont tu parles, c'est d'une des manières d'implémenter un tableau dynamique à deux dimensions. Je pense que tu ne maitrise pas encore assez le sujet pour l'enseigner...
désolé il est 4H10 du mat chez moi, alors j'suis peut être un peu trop iritable
mais moi je trouve que tu te la raconte un peu trop
enfin c'est juste mon avis
J'suis un zero, mais j'trouve que là tu vas vraiment chercher des puces là où y en a pas, j'ai rien dit d'extravagant, alors qu'est c'que tu me soul à me reprendre sur tout ce que je dis comme ça? (désolé, j'aime pas trop qu'on me dise de la fermer)
J'suis pas assé calé pour enseigner? Peut-être, mais toi tu te la pete un peu trop ne serais-ce que pour désérer les dents
Comprends rien aux tableaux multidimensionnels
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
If you'd like to join us, read "How do we work at OpenClassrooms"! :)