Qu'est-ce que "Out of Bounds" moyenne sur un ordinateur?

L'un des éléments fondamentaux de tout programme est la variable. La variable représente une valeur stockée dans la mémoire de l'ordinateur. La manière dont les programmes accèdent à des données est important, cependant: en utilisant des collections de données appelées tableaux, il devient possible pour les programmeurs d'effectuer des calculs involontaires à l'aide des valeurs inconnues dans la mémoire. En allant à l'extérieur des limites d'un tableau, un programmeur commence essentiellement pour éventuellement modifier les valeurs dans la mémoire qui peut représenter une fonctionnalité importante pour le programme ou pour l'ensemble du système lui-même.

Mémoire d'ordinateur

La mémoire dans un système informatique, est agencé de manière séquentielle. Cela signifie que les variables déclarées résident dans la mémoire à côté d'autres variables, ou d'autres éléments de données. Emplacements mémoire sont divisés par leur type, de sorte que suffisamment de mémoire est mis de côté pour chaque type. Par exemple, si un programme met de côté une variable entière et une variable de caractère, il désigne deux octets de mémoire pour l'entier, puis un octet pour le personnage.

Arrays

Les programmeurs peuvent également mettre de côté des tableaux de valeurs, qui représentent une collection de valeurs sous le même nom de variable. Donc, au lieu de déclarer cinq variables entières différentes qui représentent une liste, le programmeur déclare un tableau de cinq valeurs, qui résident sous le nom de tableau et sont accessibles en faisant référence à l'indice de base zéro du tableau. Par conséquent, lorsqu'un programmeur met de côté un tableau, l'ordinateur met de côté suffisamment de mémoire continue pour le montant des valeurs du tableau tiendra. Donc, si le programmeur déclare un tableau de cinq entiers, l'ordinateur sera mis de côté l'espace disponible suivant dans la mémoire qui peut contenir cinq entiers.

Tableaux et Out of Bounds

Le programmeur peut déclarer un tableau et d'accéder à ses valeurs à travers l'accès aux indices qui contiennent les valeurs. Cependant, dans certains langages de programmation tels que C, il n'y a rien pour arrêter le programmeur de tenter accidentellement d'accéder à un index ne fait pas partie du tableau. Par exemple, un programmeur utilisant le tableau cinq entier pourrait essayer d'accéder à une sixième valeur. Le programmeur est allé "en dehors des limites" de la matrice: la valeur n'existe pas dans le cadre du tableau, donc maintenant le programmeur tente d'accéder à la mémoire en dehors du réseau.

Nécessité de Bounds Vérification

En allant à l'extérieur des limites du tableau, le programmeur est maintenant des données potentiellement la manipulation dans d'autres emplacements de mémoire. Très probablement, le programmeur n'a aucune idée de ce qui est dans ce lieu de mémoire: il pourrait être données pour une autre variable, ou un emplacement de référence pour une autre fonction. Si un langage de programmation ne vérifie pas les limites en interdisant aux programmeurs d'accéder à des données en dehors d'un tableau, le programmeur peut réécrire le code qui exécute des fonctions critiques, des causes du programme en cours pour afficher un comportement inattendu.