next up previous contents index
Next: Résolution de systèmes linéaires Up: No Title Previous: Tri d'un tableau numérique

Tableaux à plusieurs dimensions

  

On peut définir un tableau à deux dimensions en l'initialisant ainsi :    

int t[][3] = {
  {1,2,3},
  {4,5,6}
};

Cette définition déclare t comme un nom dont le type est << tableau de tableaux de trois int >>, puis alloue un bloc de mémoire pouvant contenir 2 fois 3 int, consécutivement, et enfin initialise ce bloc en y écrivant les entiers 1, 2, 3, 4, 5 et 6. t est une expression constante dont la valeur est l'adresse du bloc alloué. On accède à ses éléments par double indexation : t[0][0], t[0][1], t[0][2], t[1][0], t[1][1] et t[1][2].[*]

La figure 10 indique la disposition en mémoire d'un tableau à deux dimensions : c'est un rangement << par lignes >>, c'est-à-dire que les éléments d'une même ligne du tableau sont rangés consécutivement en mémoire[*].

Comme t est un tableau, une indexation partielle est admise : t[0] et t[1] désignent des tableaux de dimension 1 et de taille 3. Les expressions t[0] et t[1] sont aussi des expressions constantes, dont la valeur est l'adresse du bloc contenant respectivement la première et la seconde ligne du tableau ; leur type est << tableau de 3 int >>.


  
Figure 10: Tableau à deux dimensions
\begin{figure}
 \begin{center}
 \leavevmode
 
\fbox {
 \epsfig{file=fig/array2.eps}
 }
 \end{center} \end{figure}

Dans le cas usuel où il n'y a pas d'initialisation, il faut spécifier la taille dans chaque dimension :

int t[2][3];

next up previous contents index
Next: Résolution de systèmes linéaires Up: No Title Previous: Tri d'un tableau numérique
Jean-Philippe Chancelier
9/29/1998