Wat is een reeks aanwijzingen?
Een reeks aanwijzingen is een standaard array -gegevenstype dat een reeks geheugen bevat die gericht zijn op gegevenstypen in tegenstelling tot het houden van andere scalaire typen zoals gehele getallen of drijvende puntnummers. Door een reeks aanwijzingen te gebruiken, kan een programma een reeks van bijna elk gegevenstype, gegevensstructuur, klasse of zelfs functie hebben. Efficiënte sortering van een reeks aanwijzingen is ook mogelijk, zodat, indien gewenst, de adressen kunnen worden uitgelijnd op basis van hun fysieke locatie in het computergeheugen. Sommige van de complicaties bij het gebruik van een reeks aanwijzingen zijn dat de gegevens gemakkelijk kunnen worden beschadigd en dat het type gegevens dat wordt opgemerkt intern moet worden beheerd om problemen met geheugenoverloop te voorkomen.
Niet alle programmeertalen maken een reeks pointers mogelijk omdat het concept oorspronkelijk was bedacht. Talen op hoog niveau die geheugenbeheer automatiseren, gebruiken geen aanwijzingen op dezelfde manier als talen op een lager niveau, hoewel technisch gezien een reeks klasseobjecten op een hoog niveau, objectgeoriënteerdTaal is een reeks aanwijzingen; Toch kunnen ze niet op dezelfde manier worden gebruikt of gemanipuleerd. In een taal op laag niveau bevat de array eigenlijk een gehele waarde die het directe adres van de aanwijzer in de geheugenhoop is. In de meeste talen op hoog niveau is deze functionaliteit niet mogelijk, hoewel alternatieve paradigma's bestaan.
Een van de aspecten die een scala aan aanwijzingen waardevol maken als een programmeertool is dat de aanwijzingen kunnen verwijzen naar elk type dat beschikbaar is. De aanwijzer is een gegevenstype op zichzelf, hoewel het enige doel is om naar een ander gegevenstype te wijzen. Dit betekent dat een reeks aanwijzingen in dezelfde array een verscheidenheid aan gegevenstypen kan bevatten, hoewel het programma een mechanisme zou moeten hebben om bij te houden waar elke aanwijzer naar verwijst.
Een krachtig aspect van aanwijzingen is dat ze daadwerkelijk kunnen wijzen op gecompileerde programmacode in het geheugen. Dit maakt een array mogelijkom te wijzen op functies, niet alleen gegevens. Een reeks functies kan dynamische numerieke verwijzing van code mogelijk maken. Dit kan handig zijn bij het programmeren van een taalpremeer of ander type software die bepaalde functies moet aanroepen op basis van onvoorspelbare invoer zonder dat grote voorwaardelijke verklaringen zoals schakelblokken nodig zijn.
Sommige problemen die worden gepresenteerd door een reeks aanwijzergegevens zijn de mogelijkheid om het adres te verliezen, waardoor dat geheugen later wordt bevrijd, en de kans dat een adres kan worden beschadigd door een onbedoelde operatie zoals toevoeging. Pogingen om toegang te krijgen tot een onjuist adres kunnen ertoe leiden dat corrupte gegevens worden gelezen of, in extreme gevallen zoals een mislukte initialisatie, een segmentatiefout die ervoor kan zorgen dat het programma onverwacht kan worden beëindigd. Voorzichtige programmering kan helpen om de mogelijkheid van deze gebeurtenissen te verminderen.