? Et af de grundlæggende dele af ethvert program er variabel. Variablen repræsenterer en værdi lagret i computerens hukommelse . Den måde, hvorpå programmer adgang til data er vigtig , men: ved hjælp af samlinger af data kaldes arrays , bliver det muligt for programmører at udføre utilsigtede beregninger ved hjælp af ukendte værdier i hukommelsen. Ved at gå uden for grænserne af et array, hovedsagelig en programmør begynder at eventuelt ændre værdier i hukommelsen , som kan udgøre vigtige funktioner for programmet eller for hele systemet selv. Hukommelse
Hukommelse i et edb-system er arrangeret sekventielt. Det betyder, at erklæret variabler vil opholde sig i hukommelsen siden af andre variabler , eller andre stykker af data. Hukommelsespladser er delt af deres type , så nok hukommelse er afsat til hver enkelt type. For eksempel, hvis et program er der afsat et heltal variabel og en karakter variabel ville det udpeger to bytes af hukommelse til heltal, så en byte til tegn.
Arrays
Programmører kan også afsat arrays af værdier, som repræsenterer en samling værdier under samme variabelnavn. Så i stedet for at erklære fem forskellige heltalsvariabler der repræsenterer en liste , erklærer programmøren en vifte af fem værdier, som bor under array navn og er tilgængelige ved at referere array'ets nulbaseret indeks. Når derfor en programmør afsætter et array , computeren afsætter tilstrækkelig kontinuerlig hukommelse for mængden af værdier array vil holde . Så hvis programmøren erklærer en vifte af fem heltal, vil computeren afsat den næste ledige plads i hukommelsen , der kan holde fem heltal.
Arrays og out of bounds
< br >
programmøren kan erklære en array og få adgang til sine værdier gennem adgang til indeks , der indeholder værdier. Men i nogle programmeringssprog såsom C , er der intet til hinder for programmøren utilsigtet forsøger at få adgang til et indeks ikke del af matrixen. For eksempel kan en programmør ved hjælp af fem heltal matrix forsøger at få adgang en sjette værdi. Programmøren er gået " uden for rammerne " af array : værdien ikke eksisterer som en del af array, nu så programmøren forsøger at få adgang til hukommelse uden for matrix
nødvendighed . af bounds Kontrol
Ved at gå uden for rammerne af array er programmøren nu potentielt manipulere data i andre lagerpladser . Mest sandsynligt, at programmøren har ingen idé om, hvad der er i denne hukommelsesplads: det kunne være data for en anden variabel , eller en reference placering til en anden funktion. Hvis et programmeringssprog ikke kontrollerer grænserne ved at nægte programmører få adgang til data uden for et array , kan programmøren omskrive kode, der udfører kritiske funktioner , i skaber den nuværende program til at vise utilsigtet adfærd.
< Br >