Ciao, un aiuto potrebbe venirti sapendo come vengono linearizzate le matrici a 2 dimensioni: in pratica l'array viene riempito leggendo la matrice per righe (o per colonne, in base a come ti è più comodo). Quindi prima scrivi la 1° riga, poi la 2° e così via fino all'ultima. Sapendo quanto è lunga una riga (ovvero il numero di colonne) è poi possibile ricostruire la matrice di partenza, visto che ogni <numero_di_colonne> celle inizia una nuova riga. Ad esempio:
+---+---+---+---+
| 1 | 2 | 3 | 4 |
+---+---+---+---+
| 5 | 6 | 7 | 8 |
+---+---+---+---+
diventa
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Questo array può essere ricostruito in vari modi. Ad esempio può essere messo in una matrice a 2 colonne, ottenendo:
+---+---+
| 1 | 2 |
+---+---+
| 3 | 4 |
+---+---+
| 5 | 6 |
+---+---+
| 7 | 8 |
+---+---+
ma ovviamente la matrice di partenza ha 4 colonne...