Langage C
Tableaux statiques à 1 dimension
IOGS / 1A / S5 / TD Langage C / Informatique pour le Traitement de l’Information
IOGS / 1A / S5 / TD Langage C / Informatique pour le Traitement de l’Information
TABLEAU
Définition
- Un tableau est un regroupement de N variables de même type sous un même nom
- N est la dimension du tableau
- Un tableau STATIQUE a une dimension connue à la compilation : une constante ou un nombre
Déclaration
. . . . . .
4 octets 0xF09A
char tab_c[4];
char codé sur 1 octettab_c codé sur 4 octets contigus
en mémoire
IOGS / 1A / S5 / TD Langage C / Informatique pour le Traitement de l’Information
TABLEAU
Définition
- Un tableau est un regroupement de N variables de même type sous un même nom
- N est la dimension du tableau
- Un tableau STATIQUE a une dimension connue à la compilation : une constante ou un nombre
Déclaration
char tab_c[4];
. . . . . .
char codé sur 1 octet
tab_c codé sur 4 octets contigus en mémoire
4 octets 0xF09A
tab_c[2]
Premier indice → 0
tab_c[0] tab_c[1] tab_c[3]
IOGS / 1A / S5 / TD Langage C / Informatique pour le Traitement de l’Information
TABLEAU
Définition
- Un tableau est un regroupement de N variables de même type sous un même nom
- N est la dimension du tableau
- Un tableau STATIQUE a une dimension connue à la compilation : une constante ou un nombre
#define N 5
int codé sur 4 octetsDéclaration
char tab_c[4];
. . . . . .
char codé sur 1 octet
tab_c codé sur 4 octets contigus en mémoire
4 octets 0xF09A
tab_c[2]
Premier indice → 0
tab_c[0] tab_c[1] tab_c[3]
IOGS / 1A / S5 / TD Langage C / Informatique pour le Traitement de l’Information
TABLEAU
Définition
- Un tableau est un regroupement de N variables de même type sous un même nom
- N est la dimension du tableau
- Un tableau STATIQUE a une dimension connue à la compilation : une constante ou un nombre
int n=5;
int tab[n] ;
Interdit en C !!!!
La taille d’un tableau statique ne peut être une variable.
Déclaration
IOGS / 1A / S5 / TD Langage C / Informatique pour le Traitement de l’Information
TABLEAU
Initialisation
- Soit lors de la déclaration :
- Soit dans le code, via une boucle itérative :
IOGS / 1A / S5 / TD Langage C / Informatique pour le Traitement de l’Information
TABLEAU
Utilisation
Le compilateur permet de dépasser la taille du tableau lors de son utilisation
MAIS l’exécution plantera !!
IOGS / 1A / S5 / TD Langage C / Informatique pour le Traitement de l’Information
MATRICE 2D → TABLEAU 1D
Mémoire en 1D seulement
Solution ??
1 1
N i
j M
. . . . . .
. . . . . .
COORDONNÉES DE LA CASE : i, j
0xF09A
IOGS / 1A / S5 / TD Langage C / Informatique pour le Traitement de l’Information
MATRICE 2D → TABLEAU 1D
1
. . .
j. . .
M1
. . .
j. . .
M1
. . .
j. . .
MLIGNE 1
Accès à la case de coordonnées i,j ?
M
LIGNE i
. . .
0xF09A
LIGNE 2
. . .
1
. . .
j. . .
M1
. . .
j. . .
MLIGNE N
IOGS / 1A / S5 / TD Langage C / Informatique pour le Traitement de l’Information
MATRICE 2D → TABLEAU 1D
1
. . .
j. . .
M1
. . .
j. . .
M1
. . .
j. . .
MLIGNE 1
Initialisation du tableau en 2D à 0
M
LIGNE i
. . .
0xF09A
LIGNE 2
. . .
1
. . .
j. . .
M1
. . .
j. . .
MLIGNE N