? En av de grundläggande delarna av alla program är variabeln . Variabeln representerar ett värde som lagras i datorns minne. Det sätt på vilket program åtkomstuppgifterna är dock viktigt : med hjälp av samlingar av data som kallas matriser , blir det möjligt för programmerare att utföra oavsiktliga beräkningar med okända värden i minnet . Genom att gå utanför gränserna för en array , börjar en programmerare huvudsakligen att eventuellt ändra värden i minnet som kan utgöra viktiga funktioner för programmet eller för hela systemet självt. Computer Memory
Minne i ett datasystem arrangeras sekventiellt . Detta innebär att deklarerade variabler kommer att bo i minnet bredvid andra variabler , eller andra delar av data . Minnesplatser delas av deras typ , så att tillräckligt med minne är avsatt för varje typ . Till exempel, om ett program avsätter ett heltal variabel och ett tecken variabel , skulle utse två byte minne för heltal , då en byte för tecknet .
Arrays
Programmerare kan också avsätta värdematriser , som representerar en samling värden under samma variabelnamn . Så istället för att förklara fem olika heltalsvariabler som representerar en lista , förklarar programmeraren en matris med fem värden , som bor under array namn och är tillgängliga genom att referera arrayen är noll - baserade index . Följaktligen , när en programmerare avsätter en array , sätter datorn avsätta tillräckligt kontinuerligt minne för den mängd värden i matrisen kommer att hålla . Så , om programmeraren förklarar en rad av fem heltal , kommer datorn att avsätta nästa tillgängliga utrymmet i minnet som rymmer fem heltal .
Arrays och Out of Bounds
programmeraren kan deklarera en array och komma åt sina värderingar genom att komma åt index som innehåller värdena . Men i vissa programmeringsspråk , såsom C , finns det inget som hindrar programmeraren från att av misstag försöker komma åt ett index inte del av matrisen . Till exempel kan en programmerare med fem heltalsmatris försöker komma åt en sjätte värde . Programmeraren har gått " utanför gränserna " i arrayen : värdet existerar inte som en del av gruppen , så nu programmeraren försöker komma åt minne utanför arrayen Addera nödvändighet . av gränskontroller
Genom att gå utanför gränserna för matrisen , är programmeraren nu potentiellt manipulera data i andra minnesplatser . Troligtvis har programmeraren ingen aning om vad som finns i denna minnesplats : det kan vara data för en annan variabel , eller en referens plats för en annan funktion . Om ett programmeringsspråk inte kolla gränser genom att förbjuda programmerare att komma åt data utanför en array , kan programmeraren skriva kod som utför viktiga funktioner , för att den nuvarande program för att visa oavsiktlig beteende .