Wiem, że podobne pytania były zadawane kilka razy i były ładnie odpowiedział, ale ... oni o zerowej długości tablica 1 wymiar jak:Zero długość wielowymiarowa tablica
int[] array = new int[0];
Wydaje się, że nie jest celem dla takich tablic w przypadku, gdy nie należy/nie można użyć wartości zerowej. Ale dlaczego Java pozwala na tworzenie takich rzeczy:
int[][][] multiDims = new int[5][0][9];
Oczywiście jak w prostym przypadku 1D mamy nic z takiej tablicy, jeśli staramy się iteracyjne albo coś i Pytam tylko dlatego, że wygląda niezwykle przykry dla mnie. :-) Ile pamięci zostało przydzielone dla takiego bezsensownego stworzenia?
Czy Twoje pytanie * dlaczego jest dozwolone * lub * ile pamięci zostało przydzielone *? – Manu
Twórcy piszą bezsensowny kod przez cały czas i nie jest możliwe wykrycie każdej bezsensownej kombinacji, którą może wymyślić programista. –
Wygląda na to, że możesz również skompilować 'new int [-1]' z powodzeniem [ideone] (http://ideone.com/MtZLBs) (oczywiście jednak zawiedzie w czasie wykonywania). Wygląda to na rodzaj błędu, który może powodować narzędzie takie jak [podatne na błędy Google] (https://github.com/google/error-prone) (chociaż wygląda na to, że obecnie nie działa, może dlatego, że jest po prostu * zbyt * głupi). –