Dichiarazione array bidimensionale,dubbio.
Ciao a tutti. Quando dichiaro un array bidimensionale è vero che posso impostare solo il primo indice cioè il numero delle righe?
Esempio: Char[][]=new char[5][]
è giusto oppure devo per forza impostare anche il secondo indice?
Esempio: Char[][]=new char[5][]
è giusto oppure devo per forza impostare anche il secondo indice?
Risposte
Non mi sembra corretto, dovrebbe darti errore.
La riga di codice postata non è completa (manca il nome della variabile ad esempio) e non hai precisato a quale linguaggio ti stai riferendo. Mi viene per questo motivo abbastanza difficile dire se la tua affermazione è vera o falsa, ma credo che non lo sia. In C++ ci sono ad esempio casi in cui è sufficiente definire la prima dimensione, ma questi casi non comprendono l'allocazione di memoria (in cui è necessario conoscere entrambe le dimensioni).
scusatemi il linguaggio è java
Si va bene anche se scrivi solo la dimensione delle righe.
Non vale il viceversa
Non vale il viceversa
Ho provato dichiarando solo le righe ma poi nell'esecuzione del programma mi da l'eccezione del null che si risolve solo se specifico le colonne.Quindi?
Corretto: se in fase di init a Java hai solo indicato le righe, non sa dove memorizzare le colonne. "Quindi" dipende da cosa vuoi fare:
- se il numero di colonne è prefissato, lo metti all'inizio;
- se il numero di colonne varia di riga in riga, devi (per ogni riga che ti serve) assegnare le colonne, qualcosa tipo
- se il numero di colonne è prefissato, lo metti all'inizio;
- se il numero di colonne varia di riga in riga, devi (per ogni riga che ti serve) assegnare le colonne, qualcosa tipo
riga[indice_riga]=new char[numero_colonne];
Si è vero...a volte se non si conosce il numero fisso delle colonne bisogna inizializzarli con dei cicli appropriati al caso.