Let A be a two dimensional array declared as follows: A: array [1 … 10] [1 ……
1998
Let A be a two dimensional array declared as follows:
A: array [1 … 10] [1 … 15] of integer;
Assuming that each integer takes one memory location, the array is stored in row-major order and the first element of the array is stored at location 100, what is the address of the element a[i][j]?
- A.
15i + j + 84
- B.
15j + i + 84
- C.
10i + j + 89
- D.
10j + i + 89
Attempted by 632 students.
Show answer & explanation
Correct answer: A
A : array [1…10][1…15]
Row-major order
Base address (BA) = 100
Size of each element (C) = 1
Row-major formula:
Loc(a[i][j]) = BA + [(i − LB₁)(UB₂ − LB₂ + 1) + (j − LB₂)] × C
Substitute values:
LB₁ = 1, LB₂ = 1, UB₂ = 15
Loc(a[i][j]) = 100 + [(i − 1) × 15 + (j − 1)]
= 100 + (15i + j − 16)
= 15i + j + 84