Un array di array nella programmazione del computer è una struttura di dati che contiene un altro array in corrispondenza di ciascun indice. Ciò significa che il dato ad ogni indirizzo sequenziale nell’array di livello più alto è in realtà il primo elemento di dato di ogni sotto-array. A sua volta, ogni sottoarray può anche essere un array di array, consentendo l’annidamento degli array tanto profondamente quanto necessario. Sebbene il concetto possa sembrare complesso, in realtà esistono notazioni di dichiarazione e dereferenziazione molto semplici che consentono di esprimere chiaramente un array di array all’interno di un programma. Uno degli usi più comuni per un array di array è quello di memorizzare le informazioni in uno schema a griglia, come può essere il caso di un’immagine.
Un array è una serie di elementi di dati che, nella maggior parte dei linguaggi di programmazione, sono archiviati in locazioni di memoria consecutive. Il dato contenuto in un array è chiamato elemento e ogni elemento occupa una posizione nell’array nota come indice. L’inizio di un array è l’indice zero, il successivo è l’indice uno e così via. Invece di contenere numeri interi o caratteri, un array di array contiene un altro array completo in corrispondenza di ciascun indice. Questi sotto-array in ogni indice possono contenere anche array, fornendo la possibilità di creare complesse strutture di dati ad albero secondo necessità.
Uno degli usi comuni di un array di array è memorizzare informazioni che possono essere indicizzate da una griglia con coordinate di colonna e riga. Questo può essere utilizzato per rappresentare i dati su un foglio di calcolo, un’immagine bidimensionale (2D) da visualizzare su uno schermo o persino una scacchiera. Array di array profondi tre livelli, ovvero un array che contiene array che contengono un terzo livello di array, può essere utilizzato per rappresentare informazioni in un cubo o può essere utilizzato per rappresentare una matrice di informazioni in cui ogni posizione ha più di una attributo. In generale, gli array di array più profondi di tre livelli non vengono utilizzati, poiché la stessa funzionalità può essere implementata più semplicemente utilizzando un array di strutture o classi.
La notazione di programmazione per un array di array è molto più facile da decifrare di quanto ci si potrebbe aspettare. La maggior parte dei linguaggi di programmazione utilizza parentesi per indicare l’indice di un array e un array multidimensionale non è diverso, tranne per il fatto che viene aggiunto un ulteriore set di parentesi per indicizzare il sottoarray. Ad esempio, un array unidimensionale potrebbe essere scritto come “array[ 2 ]” per indicare l’elemento nella seconda posizione dell’indice dell’array. Un array di array potrebbe essere scritto in modo simile — array[ 2 ][ 1 ] — che indica l’elemento datum nel primo indice del secondo array.