Vad är en tom array?

Den exakta definitionen av vad en tom array är i datorprogrammering är inte alltid tydlig. En vanlig tolkning är att en array är tom om den har noll element, även om inte alla datorspråk tillåter att en array deklareras på detta sätt. En annan tolkning av en tom array är en array där alla dataelement är antingen noll, noll eller odefinierade, beroende på vilket programmeringsspråk som används. Vissa språk gör skillnad mellan en array som är tom och en array som inte har allokerats ännu och är lika med null, även om andra språk kan betrakta en oallokerad array som en tom array.

Det finns specifika tillfällen där en array kan deklareras i ett program utan element, vilket betyder att den inte kan innehålla några data och anses vara en tom array. Dessa är ofta dynamiska arrayer som kan öka antalet element, eftersom en array utan element är i princip oanvändbar. I objektorienterade programmeringsspråk kan en tom array deklareras inuti ett array class wrapper-objekt som upprätthåller arraydatastrukturen internt. I vissa skript- och metaspråk skickas en tom array som en parameter till funktioner som ska fyllas i eller tilldelas värden från en annan datakälla.

Den andra betydelsen av en tom array är en array som har initierats så att den inte innehåller några data, eller är fylld med värden som indikerar att ingen data finns. Detta beror på att i språk som C, när minnesutrymme för en array tilldelas, innehåller det fortfarande restdata från tidigare program eller filer som kan ha upptagit utrymmet. För att tömma en sådan här array måste varje element gås igenom och sedan ställas in på ett neutralt värde. Detta värde kan vara det faktiska American Standard Code for Information Interchange (ASCII)-värdet noll, vilket skiljer sig från det alfanumeriska tecknet noll. Det kan också vara värdet för null, vilket betyder inget värde, vilket är samma som ASCII noll på vissa språk.

Syftet med att ha en tom array är delvis för effektiviteten i vissa program. Genom att ha en array som är tom kan programmet undvika att utföra meningslösa eller felaktiga beräkningar på arrayen. Det kan också förhindra ett program från att komma åt en array som inte har en giltig minnesadress, vilket orsakar ett minnesåtkomstfel som kan avsluta programmet. Vissa datorspråk har inbyggda biblioteks- eller klassfunktioner som enkelt kan se om en array faktiskt är tom enligt språkdefinitionen.