? En av de grunnleggende delene av programmet er variabel. Den variable representerer en verdi som er lagret i datamaskinens minne . Den måten som programmer tilgangsdata er viktig , men: ved hjelp av samlinger av data kalt matriser , blir det mulig for programmerere å utføre utilsiktede beregninger ved hjelp av ukjente verdier i hukommelsen . Ved å gå utenfor grensene av en matrise, begynner en programmerer hovedsak å muligens endre verdier i minnet som kan representere viktig funksjonalitet for programmet eller for hele systemet selv. Minne
Minne i et datasystem er ordnet sekvensielt . Dette betyr at variabler deklarert vil ligge i minnet ved siden av andre variabler, eller andre deler av data . Minnespor er delt av sin type , slik at nok minne er satt til side for hver type. For eksempel, hvis et program setter til side en heltallsvariabel og et tegn variabel , ville det utpeke to byte minne for heltall , så en byte for karakteren .
Arrays
programmerere kan også sette av matriser med verdier , som representerer en samling av verdier under samme variabelnavn. Så i stedet for å erklære fem forskjellige heltallsvariabler som representerer en liste , sier programmerer en rekke fem verdier, som bor under rekke navn og er tilgjengelige ved å referere til tabellens nullbasert indeksen. Følgelig , når en programmerer setter til side en matrise, setter datamaskinen av nok sammenhengende minne for mengden av verdiene i matrisen vil holde . Så , hvis programmereren erklærer en rekke fem heltall , vil datamaskinen sette den neste ledige plassen i minnet som kan holde fem heltall.
Arrays og utenfor banen
programmereren kan erklære en matrise og få tilgang til sine verdier gjennom tilgang indeksene som inneholder verdiene . Men i noen programmeringsspråk som C , er det ingenting å stoppe programmerer fra uhell forsøker å få tilgang til en indeks ikke er en del av tabellen. For eksempel kan en programmerer ved hjelp av fem heltall matrise prøve å få tilgang til en sjette verdi. Programmereren har gått " utenfor grensene " i matrisen : verdien ikke eksisterer som en del av tabellen , så nå programmerer prøver å få tilgang til minne utenfor matrisen
nødvendighet . av grensekontroll
Ved å gå utenfor grensene av tabellen, er programmerer nå potensielt manipulere data i andre minnesteder. Mest sannsynlig , har programmereren ingen anelse om hva som er i denne minneområde : det kan være data for en annen variabel , eller en referanse plassering for en annen funksjon. Hvis et programmeringsspråk ikke kontrollerer grensene ved å ikke tillate programmerere for å få tilgang til data utenfor i en tabell, kan programmereren skrive kode som utfører kritiske funksjoner , av årsaker det aktuelle programmet for å vise utilsiktet atferd .