En C, un tableau peut être initialisé dans sa globalité au moment de sa déclaration et uniquement lors de sa déclaration. La syntaxe consiste à mettre entre deux accolades les valeurs des cellules séparées par des virgules :
int tab[5] = { 12, 25, 65, 11, 7};
Cette initialisation crée un tableau avec les valeurs suivantes :
$$ tab = \begin{bmatrix} 12 \\ 25 \\ 65 \\ 11 \\ 7 \end{bmatrix} $$
Si le nombre de valeurs entre les accolades est inférieur à la taille du tableau, seules les premières cellules (concernées) seront initialisées.
Lors d'une initialisation à la déclaration, si la taille du tableau n'est pas spécifiée entre les crochets, la taille du tableau s'adaptera automatiquement. Par exemple, la ligne suivante crée un tableau de 3 cellules :
int tab[] = {1,2,3};
Si l'on doit initialiser un tableau en dehors de sa déclaration, il faut
memcpy()
.Écrire un programme qui crée déclare et initialise un tableau avec les 5 premiers nombres impairs. Le programme affiche ensuite le contenu du tableau conformément à cet exemple :
tab[0] = 1 tab[1] = 3 tab[2] = 5 tab[3] = 7 tab[4] = 9
Modifier le code de l'exercice précédent pour que le tableau contienne maintenant les 1000 premiers nombres impairs :
tab[0] = 1 tab[1] = 3 tab[2] = 5 ... tab[997] = 1995 tab[998] = 1997 tab[999] = 1999
Quelles syntaxes permettent d'initialiser un tableau ?
Comment initialiser un tableau en dehors de sa déclaration ?
Considérons l'initialisation suivante. Qu'y a-t-il dans tab[2]
?
int tab[3] = { 10, 20 };
Quel est la taille de ce tableau ?
char tab[] = { 10, 20, 30, 40 };