Što je prazan niz?

Točna definicija što je prazan niz u računalnom programiranju nije uvijek jasna. Jedno uobičajeno tumačenje je da je niz prazan ako ima nula elemenata, iako svi računalni jezici ne dopuštaju da se niz deklarira na ovaj način. Druga interpretacija praznog niza je niz u kojem su svi elementi podataka ili null, nula ili nedefinirani, ovisno o programskom jeziku koji se koristi. Određeni jezici prave razliku između niza koji je prazan i niza koji još nije dodijeljen i jednak je null, iako bi drugi jezici mogli smatrati nedodijeljeni niz praznim nizom.

Postoje specifični slučajevi u kojima se niz može deklarirati unutar programa bez elemenata, što znači da ne može sadržavati nikakve podatke i smatra se praznim nizom. Često su to dinamički nizovi koji mogu povećati broj elemenata, jer je niz bez elemenata u biti neupotrebljiv. U objektno orijentiranim programskim jezicima, prazan niz može se deklarirati unutar objekta omotača klase polja koji interno održava strukturu podataka polja. U nekim skriptnim i meta-jezicima, prazan niz se prosljeđuje kao parametar funkcijama koje treba ispuniti ili im se dodijeljuju vrijednosti iz drugog izvora podataka.

Drugo značenje praznog niza je niz koji je inicijaliziran tako da ne sadrži podatke ili je ispunjen vrijednostima koje ukazuju da nema podataka. To je zato što u jezicima kao što je C, kada se dodijeli memorijski prostor za niz, on i dalje sadrži sve preostale podatke iz prethodnih programa ili datoteka koje su možda zauzimale taj prostor. Da biste ispraznili niz poput ovoga, svaki element se mora provući kroz petlju i zatim postaviti na neutralnu vrijednost. Ova vrijednost može biti stvarna nula vrijednost američkog standardnog koda za razmjenu informacija (ASCII), koja se razlikuje od alfanumeričkog znaka nula. Također može biti vrijednost za null, što znači da nema vrijednosti, što je isto kao i ASCII nula u nekim jezicima.

Svrha praznog niza je djelomično za učinkovitost u nekim programima. Imajući niz koji je prazan, program može izbjeći izvođenje besmislenih ili netočnih izračuna na nizu. Također može spriječiti program da pristupi nizu koji nema valjanu memorijsku adresu, uzrokujući grešku pristupa memoriji koja bi mogla prekinuti program. Neki računalni jezici imaju ugrađene funkcije biblioteke ili klase koje mogu lako reći je li niz zapravo prazan prema definiciji jezika.