Un tableau de 10 mesures entières est parcouru par une boucle dont la condition est large. Le programme fonctionne, et affiche une valeur de plus que prévu.
Objectif
Localiser précisément le dépassement, en tours, en cases et en octets.
Le code en cause
int mesures[10];
for (int i = 0; i <= 10; i++) {
total = total + mesures[i];
}
Ce qui se passe hors d'un interpréteur
Aucune vérification n'a lieu. La lecture rapporte les quatre octets qui suivent la dernière case, c'est-à-dire, le plus souvent, une autre variable locale de la même fonction. Le total est faux, et rien ne le signale.