Traduction:
elle est immédiate car la syntaxe donnée en algorithmique
est celle du C, donc:
int tab[10];
/* déclaration
d'un tableau de 10 entiers. /*
int tab2[25];
/*
déclaration d'un tableau de 25 entiers */
Le
compilateur C réserve une zone
contigüe en mémoire pour tout le tableau. Ainsi, il
réserve une zone contigüe de 40 octets (quatre octets pour
un entier * 10) pour
tab et de 100 octets pour tab2.
ATTENTION:
En C, il n'y a pas de vérification de débordement
de tableau
à l'exécution:
- L'erreur liée
à l'instruction tab[10] = 1; ne
sera pas détectée
par le compilateur ni même à l'éxécution
mais va écrire dans une zone de 4 octets en dehors du tableau.
D'ailleurs en supposant que les zones pour tab et tab2 sont
consécutives tab[10] = 1; va
écraser la valeur de tab2[0] avec
1. C'est une erreur très difficile
à détecter.
suivant plan