# C - Multidimensional Arrays

### Multi Dimensional Array

Multi-dimensional array is defined using multiple adjacent square brackets like a[4][3]. In multi-dimensional array, there is no limit to specify the number of indices. For example, you can define an array with 5 indices like a[2][3][4][3][5] to store 2x3x4x3x5 = 360 number of elements. For two-dimensional array require two indices, three-dimensional array require three indices, four-dimensional array require four indices and so on.

### Two-dimensional Array

In C Programming, the two-dimensional array can be represented with two indices or two labels in square brackets. It can be declared as follows

data-typename array-name[size][size];

It has (size*size) elements, which form imaginary grid in which every square is a variable or storage area.

The two-dimensional array can also be represented as rows and columns and it is also known as matrix.

#### Example

int Array[3][3];

The meaning of using two indices is that first index refers the number of rows in the grid whereas second index refers the number of columns in the grid.

### Two-dimensional Array Initialization

The elements of an array may be initialized with values enclosed in curly brace.

#### Example

int array[3][3]={{2,3,4},{9,4,7},{1,7,3}};

Here the braces are nested such that the inner braces enclose each row of the two-dimensional array. In memory, an array cannot be stored in grid instead it can be stored as one-dimensional array. Therefore arrays are stored in row-wise. The above array would be stored as

The multi-dimensional arrays may also be defined without a specific size as same as one dimensional arrays. In case of two-dimensional array, only the left-most index ( the number of rows) is free, and the other dimensions must be given a definite value.

#### Example

int array[][3]={ {2,3,4}, {9,4,7} };

Usually, arrays of more than one dimension are simply handled by nested for loops. Therefore, a two dimensional array may also be initialized as in the following example:

### Example

main () { int i,j; float array[SIZE1][SIZE2]; for (i = 0; i < SIZE1; i++) { for (j = 0; j < SIZE2; j++) { array[i][j] = 0; } } }

In case of three-dimensional array, three nested loops would be needed.

### Accessing of Arrays

To access an element of a two-dimensional array, the correct notation is to enclose each index in a separate pair of square brackets.

int result = array[1][2];

This above statement shows that 3rd element of 2nd row of array is assigned to the given variable.