Null pointer
In de informatica is een null pointer (soms afgekort tot nullptr of null) of nullreferentie een waarde die wordt opgeslagen om aan te geven dat de pointer of referentie niet naar een geldig object verwijst. Programma's gebruiken null pointers routinematig om situaties weer te geven zoals het einde van een lijst met een onbekende lengte of het mislukken van een bepaalde actie. Dit gebruik van null pointers kan worden vergeleken met nullable types en met de Nothing-waarde in een optietype.
Een null pointer moet niet worden verward met een niet-geïnitialiseerde pointer: een null pointer is gegarandeerd verschillend van elke pointer die naar een geldig object wijst. Over het algemeen bieden de meeste programmeertalen echter geen dergelijke garantie voor niet-geïnitialiseerde pointers. Deze kunnen gelijk zijn aan andere, geldige pointers, of gelijk aan null pointers. Het kan beide op verschillende momenten gebeuren, of de vergelijking kan ongedefinieerd gedrag opleveren. Bovendien hangt het correcte gebruik in talen die deze ondersteuning wel bieden, af van de individuele ervaring van elke ontwikkelaar en de linter-tools.
Zelfs bij correct gebruik zijn null pointers semantisch onvolledig, omdat ze niet de mogelijkheid bieden om het verschil uit te drukken tussen "niet toepasbare", "niet bekende" en "toekomstige" waarden.
Omdat een null pointer niet naar een betekenisvol object wijst, kan een poging om toegang te krijgen tot de gegevens die op die (ongeldige) geheugenlocatie zijn opgeslagen, een runtimefout of een onmiddellijke programmacrash veroorzaken. Dit is de nullpointerfout, of nullpointeruitzondering. Het is een van de meest voorkomende soorten softwarefouten, en Tony Hoare, die het concept introduceerde, heeft het zijn "vergissing van een miljard dollar" genoemd.
- Dit artikel of een eerdere versie ervan is een (gedeeltelijke) vertaling van het artikel Null pointer op de Engelstalige Wikipedia, dat onder de licentie Creative Commons Naamsvermelding/Gelijk delen valt. Zie de bewerkingsgeschiedenis aldaar.