Le matrici (anche dette array bidimensionali) sono variabili complesse, composte da variabili (array) omogenei tra di loro (dati dello stesso tipo → tutti int, tutti float, tutti char).

Inizializzazione matrice
int corso [200][20]; //tipo, nome, numero righe, numero colonne
Una matrice si dichiara → tipo, nome, numero righe (composto da 200 elementi), numero colonne (ciascuno di 20 elementi)
Per calcolare quanto spazio dovrà essere allocato in memoria è sufficiente moltiplicare il numero di righe per il numero di colonne per il numero di byte occupati dal tipo della matrice (in questo caso int)
Ricordiamo che:
- il tipo int occupa 2 byte
- il tipo float occupa 4 byte
- il tipo char occupa 1 byte
Spazio allocazione in memoria = 200 * 2 * 20 = (numero righe) * (byte tipo int) * (numero colonne) = 8000 byte
corso [4][3] = 18; //Inserisco nella 5° riga e 4° colonna, il valore 18
corso [0][20] = 15; //Inserisce nella 2° riga e 1°colonna il valore 15 (perchè il massimo numero di colonne è 19)
Teoria: per vedere dove è stato messo un elemento in memoria → (base + ((indice riga * dimensione riga) + indice colonna) * dimensione tipo variabile.
base → numero dal quale la memoria è libera
corso [4][3] → è stato messo nella posizione (base + (4*20) + 3) * 2
Esempio: come assegnare il valore 0 a tutti gli elementi della matrice
Per conoscere il ciclo for, clicca qui.
#include <stdio.h>
int main()
{
int corso [200][20];
int i, j; //i scorre sulle righe, j scorre sulle colonne
for(i=0; i<200; i++)
for(j=0; j<20; j++)
corso[i][j] = 0; //così facendo riempiamo righe e colonne di 0
return 0;
}
Le parentesi possono NON essere messe perchè ogni corpo del ciclo for è composto da UNA sola istruzione.