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]?

  1. A.

    15i + j + 84

  2. B.

    15j + i + 84

  3. C.

    10i + j + 89

  4. 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

Explore the full course: Gate Guidance By Sanchit Sir