Exercice : De mieux en mieux !
Malgré le nombre de notes variable, la fonction « fait son job ». Malheureusement, le domaine d'application change. Les nouvelles classes présentent des élèves qui décident de suivre des options !
Le nombre de notes n'est donc plus au maximum de 8.
Pour éviter des modifications systématiques, nous voulons éviter d'introduire dans la définition de la fonction une limite quelconque.
Quels sont les choix possibles de types pour le paramètre tbnotes ?
Votre choixChoix attenduRéponse
Une déclaration de tableaux avec 2 dimensions vides est refusée, car l'utilisation d'un tableau sans structure fixée est impossible. La dimension 2 étant inconnue, l'adressage n[i][j] ne pourrait être résolu.
En effet, l'accès à l'élément n[i][j]
d'un tableau « float tab[N1][N2]
» est calculé automatiquement selon la formule \(tab+\left (i* N2 +j\right )*sizeof\left ( float \right )\). Cette formule montre bien que la dimension de niveau 2 (N2) est nécessaire.
La déclaration float (*n)[] est acceptée, mais l'absence de dimensions ne nous permettra pas d'utiliser l'incrémentation sur les tableaux de niveau 2.
Ces impossibilités résultent de la nature de notre problème qui induit une dimension des sous-tableaux variable.
La seule possibilité est float **n
qui peut être également exprimée par float *n[]
.