Hvad er en række pointers?
En række pointers er en standard array -datatype, der indeholder en række hukommelse adresseret til datatyper i modsætning til at holde andre skalære typer såsom heltal eller flydende punktnumre. Ved at bruge en række pointers er et program i stand til at have en række næsten enhver datatype, datastruktur, klasse eller endda funktion. Effektiv sortering af en række pointers er også mulig, så adresserne, hvis de ønskes, kan justeres i henhold til deres fysiske placering i computerhukommelsen. Nogle af komplikationerne ved at bruge en række pointers er, at dataene let kan ødelægges, og at den type data, der peges på, skal styres internt for at forhindre hukommelsesoverløbsproblemer.
Ikke alle programmeringssprog tillader en række pointer, da konceptet oprindeligt blev undfanget. Sprog på højt niveau, der automatiserer hukommelsesstyring, bruger ikke tip på samme måde som sprog på lavere niveau, selvom teknisk set en række klasseobjekter på et højt niveau, objektorienteretSprog er en række pointers; Alligevel kan de ikke bruges eller manipuleres på samme måde. På et sprog på lavt niveau vil arrayet faktisk have en heltalværdi, der er den direkte adresse på markøren i hukommelseshøjen. På de fleste sprog på højt niveau er denne funktionalitet ikke mulig, skønt der findes alternative paradigmer.
Et af de aspekter, der gør en række pointer, der er værdifulde som et programmeringsværktøj, er, at pointerne kan henvise til enhver form for tilgængelige data. Markøren er en datatype i sig selv, selvom dens eneste formål er at pege mod en anden datatype. Dette betyder, at en række pointer faktisk kan indeholde en række datatyper i den samme matrix, selvom programmet skulle have en mekanisme til at holde styr på, hvad hver markør henviste til.
Et kraftfuldt aspekt af pointerne er, at de faktisk kan pege på at udarbejde programkode i hukommelsen. Dette tillader en matrixAt pege på funktioner, ikke kun data. En række funktioner kan muliggøre dynamisk numerisk henvisning af kode. Dette kan være nyttigt, når man programmerer en sprogtolk eller anden type software, der skal kalde visse funktioner baseret på uforudsigelige input uden behov for store betingede udsagn såsom switchblokke.
Nogle problemer, der er præsenteret af en række markørdata, er muligheden for at miste adressen, forhindre, at hukommelsen bliver frigivet senere, og chancen for, at en adresse kan ødelægges gennem en utilsigtet operation, såsom tilføjelse. Forsøg på at få adgang til en forkert adresse kan føre til, at korrupte data læses, eller i ekstreme tilfælde, såsom en mislykket initialisering, en segmenteringsfejl, der kan få programmet til at afslutte uventet. Forsigtig programmering kan hjælpe med at afbøde muligheden for disse begivenheder.