:: Enseignements :: Licence :: L2 :: 2008-2009 :: Structures de données ::
[LOGO]

Rappels sur l'allocation dynamique


Matrice et typage de la mémoire

On désire représenter par un pointeur une matrice d'éléments de type double (tableau à deux dimensions). Le faire par une allocation statique est plutôt simple:
double tab[MAXLIG][MAXCOL];

Pour allouer dynamiquement un tel tableau, il est possible de s'aider de la figure ci-dessous qui présente la manière dont les informations devront être stockées.

Donner la définition d'un type Matrice permettant de représenter des matrices à deux dimensions d'éléments de type double, dont la taille de chaque dimension n'est pas connue statiquement. Les informations nécessaires sont donc un pointeur et la taille de chaque dimension.

Écrire les fonctions suivantes:
  • Matrice* alloueMatrice(int maxLig, int maxCol)
  • double elementMatrice(Matrice* m, int i, int j)
  • void afficheMatrice(Matrice* m)
  • void libereMatrice(Matrice* m)

Écrire un main de test qui demande à l'utilisateur de saisir les dimensions de la matrice, qui l'alloue et l'initialise avec des valeurs croissantes de 1 à chaque fois:
 0  1  2  3
 4  5  6  7
 8  9 10 11
12 13 14 15
16 17 18 19