Mis on tühi massiiv?

Täpne määratlus selle kohta, mis on tühi massiiv arvutiprogrammeerimises, ei ole alati selge. Üks levinud tõlgendus on see, et massiiv on tühi, kui sellel on null elementi, kuigi mitte kõik arvutikeeled ei võimalda massiivi sel viisil deklareerida. Tühja massiivi teine ​​tõlgendus on massiiv, milles kõik andmeelemendid on kas null, null või määratlemata, olenevalt kasutatavast programmeerimiskeelest. Teatud keeled teevad vahet tühja massiivi ja veel eraldamata massiivi vahel, mis on võrdne nulliga, kuigi teised keeled võivad jaotamata massiivi pidada tühjaks massiiviks.

On teatud juhtumeid, kus massiivi saab deklareerida programmis ilma elementideta, mis tähendab, et see ei sisalda andmeid ja seda peetakse tühjaks massiiviks. Need on sageli dünaamilised massiivid, mis võivad elementide arvu suurendada, sest elementideta massiiv on sisuliselt kasutuskõlbmatu. Objektorienteeritud programmeerimiskeeltes saab massiivi klassi ümbrisobjekti sees deklareerida tühja massiivi, mis säilitab sisemiselt massiivi andmestruktuuri. Mõnes skriptimis- ja metakeeles edastatakse tühi massiiv parameetrina funktsioonidele, mida täidetakse või määratakse väärtused teisest andmeallikast.

Tühja massiivi teine ​​tähendus on massiiv, mis on lähtestatud nii, et see ei sisalda andmeid või on täidetud väärtustega, mis näitavad, et andmeid pole. Selle põhjuseks on asjaolu, et sellistes keeltes nagu C sisaldab massiivi mäluruumi eraldamisel endiselt eelmiste programmide või failide jääkandmeid, mis võisid selle ruumi hõivata. Sellise massiivi tühjendamiseks tuleb iga element läbida ja seejärel seada neutraalne väärtus. See väärtus võib olla tegelik American Standard Code for Information Interchange (ASCII) väärtus null, mis erineb tähtnumbrilisest märgist nullist. See võib olla ka nullväärtus, mis tähendab, et väärtus puudub, mis on mõnes keeles sama, mis ASCII null.

Tühja massiivi eesmärk on mõne programmi puhul osaliselt tõhustada. Kui massiiv on tühi, saab programm vältida massiivi mõttetute või valede arvutuste tegemist. Samuti võib see takistada programmil juurdepääsu massiivile, millel puudub kehtiv mäluaadress, põhjustades mälule juurdepääsu tõrke, mis võib programmi lõpetada. Mõnel arvutikeelel on sisseehitatud teegi või klassi funktsioonid, mis suudavad hõlpsasti kindlaks teha, kas massiiv on keelemääratluse järgi tühi.