Multidimensional Arrays in C

Declarations

int a[5][6];
double s[30][10][7];

Array References

sum = 0;
for (int i = 0; i < n; i++) {
  for (int j = 0; j < n; j++) {
    sum += a[i][j];
  }		      
}

Multidimensional Arrays vs Arrays of Arrays

Create a 2 dimensional array and fill it with zeros:

int a[m][n];

for (int i = 0; i < m; i++) {
  for (int j = 0; j < n; j++) {
    a[i][j] = 0;
  }
}

Create a array of arrays and fill it with zeros:

int **a;
a = calloc(m, sizeof(int *));
for (int i = 0; i < m; i++) {
  a[i] = calloc(n, sizeof(int));
  for (int j = 0; j < n; j++) {
    a[i][j] = 0;
  }
}