# C Programming language

Day 5 Array representation in memory using C Programming language
 Previous Home Next

## # Two dimensional Array representation in memory

Two dimensional arrays are often known as array of the array. In multidimensional arrays the array is divided into rows and columns, mainly while considering multidimensional arrays we will be discussing mainly about two dimensional arrays and a bit about three dimensional arrays. In 2-D array we can declare an array as :

```int arr[3][3];
```

where first index value shows the number of the rows and second index value shows the no. of the columns in the array. We will learn about the 2-D array in detail in the next section, but now emphasize more on how these are stored in the memory.

Mainly multidimensional arrays are stored in the memory in the following two ways :

• # Row-Major order Implementation

The arrays are stored in the memory in terms of the row design, i.e. first the first row of the array is stored in the memory then second and so on. Suppose we have an array named arr having 3 rows and 3 columns then it can be stored in the memory in the following manner :

 arr[0][0] arr[0][1] arr[0][2] arr[1][0] arr[1][1] arr[1][2] arr[2][0] arr[2][1] arr[2][2]

Thus an array of 3*3 can be declared as follows :

```arr[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
```
• # Column-Major order Implementation

Thus an array of 3*3 can be declared as follows :

```arr[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
```

It will be represented in the memory with row major implementation as follows :

 1 2 3 4 5 6 7 8 9

In Column-Major Implementation of the arrays, the arrays are stored in the memory in the term of the column design, i.e. the first column of the array is stored in the memory then the second and so on. By taking above eg. we can show it as follows :

```arr[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
```

It will be represented in the memory with column major implementation as follows :

 1 4 7 2 5 8 3 6 9
 Previous Home Next