C_facile : Introduction au langage C
Cours

Problème de la linéarisation de la structure de donnée

Voici un tableau à deux dimensions tel qu'il est présenté en mathématique par exemple :

Exemple
Exemple

Nous remarquons immédiatement qu'il s'agit d'une donnée qui possède deux dimensions. Il faut un indice de ligne et un indice de colonne pour accéder au contenu d'une case.

Or, la mémoire d'une machine est vue comme un très grand ruban d'octets, c'est une organisation linéaire avec une seule dimension puisque l'on accède à un octet à l'aide de son adresse mémoire. Ce ruban peut être vu comme un tableau à une dimension.

Il faut donc trouver une technique pour linéariser un tableau en deux dimensions afin qu'il puisse être rangé et manipulé dans un tableau à une dimension.

Nous avons deux possibilités :

  • linéarisation colonne/colonne

  • linéarisation ligne/ligne

Dans le premier cas le tableau est découpé en colonnes, et les colonnes consécutives sont rangées les unes derrière les autres. Dans le second cas le tableau est découpé en lignes, et les lignes sont rangées les unes derrière les autres. Le langage C utilise la deuxième technique.

Le découpage et l'organisation en lignes donne :

Le découpage et l'organisation en lignes
Le découpage et l'organisation en lignes

Les valeurs 7, 8, 9, 15, 16, 17 peuvent se ranger les unes à la suite des autres dans la mémoire : nous avons linéarisé le rangement du tableau.

Un tableau à deux dimension est aussi appelé matrice.

Déclaration et initialisation à la déclaration (page suivante)Les tableaux à deux dimensions (page Précédente)
AccueilImprimer creativecommons : by-nc-ndRéalisé avec SCENARI