next up previous contents index
Next: Arguments de la fonction Up: No Title Previous: Représentation des matrices par

Tableaux de chaînes de caractères

    

Comme une chaîne est une tableau de caractères, on peut représenter un tableau de chaînes comme un tableau de caractères à deux dimensions. Ceci oblige à spécifier la longueur des lignes, qui doit être la longueur de la plus longue chaîne plus un. Par exemple, la liste des premiers Turing awards [*] peut être représentée par le tableau bidimensionnel suivant :

char turing1[][16] = { 
  "Perlis",
  "Wilkes",
  "Hamming",
  "Minsky",
  "Wilkinson",
  "McCarthy",
  "Dijkstra",
  "Bachman",
  "Knuth",
  "Newell et Simon"
};

Dans ce cas, turing1[8] est un tableau de 16 caractères, qui occupe donc 16 octets, mais n'utilise que les 6 premiers pour stocker "Knuth" :


  
Figure 32: Tableau bidimensionnel de caractères
\begin{figure}
 \begin{center}
 \leavevmode
 
\fbox {
 \epsfig{file=fig/string_array1.eps}
 }
 \end{center} \end{figure}

Il est préférable, pour des raisons d'occupation de la mémoire, de représenter un tableau de chaînes comme un tableau, à une dimension, de pointeurs :

char *turing2[] = { 
  "Perlis",
  "Wilkes",
  "Hamming",
  "Minsky",
  "Wilkinson",
  "McCarthy",
  "Dijkstra",
  "Bachman",
  "Knuth",
  "Newell et Simon"
};

L'objet turing2 est différent de l'objet turing1, n'utilisant pas l'espace mémoire de la même façon. La chaîne turing2[8] n'occupe plus maintenant que 6 octets :


  
Figure 33: Tableau de chaînes de caractères
\begin{figure}
 \begin{center}
 \leavevmode
 
\fbox {
 \epsfig{file=fig/string_array2.eps}
 }
 \end{center} \end{figure}

Mais on accède toujours aux différents caractères par les mêmes expressions : turing2[8][0], a comme turing1[8][0] pour contenu le caractère 'K'. Ces tableaux de chaînes de caractères sont analogues à la représentation des matrices par des tableaux de pointeurs, à ceci près que les << lignes >> de la matrice n'ont maintenant plus la même taille.


next up previous contents index
Next: Arguments de la fonction Up: No Title Previous: Représentation des matrices par
Jean-Philippe Chancelier
9/29/1998