? Eines der grundlegenden Teile eines jeden Programms ist die Variable . Die Variable stellt einen Wert in den Speicher des Computers gespeichert. Die Art und Weise , in der Programme Zugangsdaten Wichtig ist jedoch : mit Sammlungen von Daten genannt Arrays wird es möglich, für Programmierer unbeabsichtigte Berechnungen mit unbekannten Werten im Speicher auszuführen. Indem wir außerhalb der Grenzen eines Arrays , ein Programmierer im Wesentlichen beginnt möglicherweise verändern Werte im Speicher , die wichtige Funktionen für das Programm oder für das gesamte System selbst darstellen können . Computer Memory
Speicher in einem Computer-System wird sequentiell angeordnet. Dies bedeutet, dass Variablen deklariert werden im Speicher neben anderen Variablen oder andere Stücke von Daten befinden. Speicherslots nach ihrer Art unterteilt sind, so dass genug Speicher für jede Art beiseite gesetzt . Zum Beispiel, wenn ein Programm hebt eine Integer-Variable und eine variable Charakter , würde es zwei Byte Speicher für die ganze Zahl bezeichnen , dann ein Byte für den Charakter.
Arrays
Programmierer können auch beiseite Arrays von Werten , die eine Sammlung von Werten repräsentieren unter dem gleichen Variablennamen . Also anstatt zu erklären fünf verschiedene Integer-Variablen , die eine Liste darstellen , erklärt der Programmierer eine Reihe von fünf Werte , die unter dem Name des Arrays befinden und zugänglich sind, durch Verweis auf die Array- Null - basierten Index . Dementsprechend wird, wenn ein Programmierer Hebt eine Anordnung setzt der Computer daher genug kontinuierlichen Speicher für die Anzahl der Werte wird das Array zu halten. Also, wenn der Programmierer deklariert ein Array von fünf Zahlen , wird der Computer beiseite den nächsten verfügbaren Platz im Speicher , die fünf Zahlen halten kann .
Arrays und Out of Bounds
Der Programmierer kann ein Array deklarieren und auf dessen Werte durch Zugriff auf die Indizes , die die Werte enthalten . Doch in einigen Programmiersprachen , wie C , gibt es nichts , um die Programmierer versehentlich versucht, einen Index nicht Teil des Arrays zugreifen zu stoppen. Zum Beispiel könnte ein Programmierer mit dem fünf Integer-Array versuchen, einen sechsten Wert zugreifen . Der Programmierer ist weg " außerhalb der Grenzen " des Arrays : Der Wert existiert nicht als Teil des Arrays , so dass nun der Programmierer versucht, Speicher außerhalb des Arrays zugreifen
Notwendigkeit . of Bounds Checking
Indem wir außerhalb der Grenzen des Arrays , wird der Programmierer nun potenziell Manipulation von Daten in andere Speicherplätze . Höchstwahrscheinlich hat der Programmierer keine Ahnung, was in diesem Speicherplatz ist : Es könnte für eine andere Variable oder ein Referenzpunkt für eine andere Funktion sein . Wenn eine Programmiersprache nicht überprüft Grenzen, die durch das Verbot des Programmierer auf Daten außerhalb eines Arrays zuzugreifen, könnte der Programmierer schreiben Code, der kritischen Funktionen ausführt , der bewirkt, dass das aktuelle Programm zu unbeabsichtigtem Verhalten anzuzeigen.