Hvad er en hukommelsesadresse?
I forhold til computere er en hukommelsesadresse en numerisk værdi, der refererer til et enkelt element af nulpunkt inden i et lagringsmedium. Placeringen af computerhukommelse kan være inden i en computers computers random access memory (RAM), på harddisken eller filsystemet eller endda på en midlertidig lagerenhed, der bruges som en form for virtuel hukommelse, når der ikke er tilstrækkelig systemhukommelse til rådighed . Størrelsen på hukommelsesplacering afhænger af arkitekturen i computersystemet eller enheden, men varierer generelt fra en 8-bit byte til et 64-bit heltal. Der er en række metoder, der bruges til at få adgang til og styre hukommelse, hvoraf mange bruger et stykke hardware, der kaldes en hukommelsesstyringsenhed (MMU), mens andre er helt afhængige af software. Alle systemer har en grænse for den maksimale hukommelsesadresse, der kan fås adgang til, hvilket normalt er den maksimale størrelse af den største heltalstype, der er tilgængelig på systemet.
Den mest almindelige type hukommelsesadresse henviser til en placering i computersystemets RAM-hukommelse, som giver hurtig adgang til dynamisk skiftende data. Den aktuelle information, der er gemt i computerhukommelsen, kan variere fra rådata, såsom numre eller tekstdokumenter, der ændres eller vises, til den faktiske programkode, der er gemt i specifikke hukommelsesadresser, når den udføres. Når et program er afsluttet udførelse, bliver oplysninger om hukommelsesadresse, der blev brugt, ugyldige, da RAM'en frigøres til det næste program, der skal bruges.
Efterhånden som teknologien er kommet frem, ændrede udtrykket "hukommelsesadresse", og fra 2011 henvises det ikke altid til en faktisk fysisk adresse. I stedet kan det henvise til et sted, der kan løses med MMU'en på en computer eller enhed. Dette betyder, at MMU tilvejebringer et niveau af abstraktion mellem en programmør og et program, i stedet tillader operativsystemet eller anden hardware at styre bevægelsen og allokering af hukommelse, som det ser passende. Den mellemliggende oversættelse af en hukommelsesadresse betyder, at programmereren ikke behøver at lære et nyt hukommelseskema eller ændre kildekoden for forskellige typer computearkitekturer.
I mange computersystemer og operativsystemer refererer en hukommelsesadresse muligvis ikke altid til data eller kode i hukommelsen. Der er skemaer, hvor en adresse kan henvise til et indgangs- eller udgangspunkt for en perifere enhed, såsom en skærm eller en virtuel enhed, såsom en socket. I disse tilfælde overføres information, der placeres på en bestemt adresse, faktisk til den hardwareenhed, den repræsenterer. Dette kan være en utrolig effektiv måde at få adgang til en enhed som en printer på, men det kan også føre til alvorlige sårbarheder og forvirring, når der fejlsøges et program.