Mi stavo chiedendo qualcosa sugli array multidimensionali e poi ho avuto un dubbio su un concetto, in particolare sulla loro rappresentazione in memoria.
Ad esempio, un array può essere definito come segue.
int a[3];
E questo è rappresentato come questo.
Doveognielementoèuninteroetuttisonoinunospaziodimemoriacontinuo.
Quindiunarraymultidimensionalepuòesseredefinitocomequesto.
inta[2][4];
Cheètipicamenterappresentatocome.
Ma una rappresentazione più realistica di questo array in memoria non sarebbe qualcosa del genere? (per analogia con la prima immagine).
Perché stavo pensando che se, per esempio, int a[5];
definisce 5 interi in uno spazio di memoria continua, allora int a[5][10];
definisce 10 matrici di interi in uno spazio di memoria continua, dove ogni matrice definisce 5 interi, quindi qualsiasi array statico N-dimensionale in C dovrebbe essere rappresentato solo come una striscia di memoria.