Detailed Print – Computer Sir Ki Class

Login


Lost your password?

Don't have an account ?
Register (It's FREE) ×
  


Shop
siteicon
Solved Problem#CPP#5959

Problem Statement - 2-D Array Element Address Calculation

A two dimensional array ARR[50][20] is stored in the memory along the row with each of its elements occupying 4 bytes. Find the address of the element ARR[30][10], if the element ARR[10] [5] is stored at the memory location 15000.

Solution

Click to open popup

Solved Problem Understanding

Loc(ARR[I][J]) along the row
  =BaseAddress + W [( I – LBR)*C + (J – LBC)]
(where C is the number of columns, LBR = LBC = 0
LOC(ARR[10][5])
            = BaseAddress + W [ I*C + J]
      15000 = BaseAddress + 4[10*20 + 5]
            = BaseAddress + 4[200 + 5]
            = BaseAddress + 4 x 205
            = BaseAddress + 820
BaseAddress = 15000-820
            = 14180
LOC(ARR[30][10])= 14180 + 4[30 * 20 + 10]
                = 14180 + 4 * 610
                = 14180 + 2440
                = 16620
OR
LOC(ARR[30][10])
   = LOC(ARR[10][5])+ W[( I-LBR)*C + (J-LBC)]
   = 15000 + 4[(30-10)*20 + (10-5)]
   = 15000 + 4[ 20*20 + 5]
   = 15000 + 4 *405
   = 15000 + 1620
   = 16620
OR
Where C is the number of columns and LBR=LBC=1
LOC(ARR[10][5])
     15000 = BaseAddress + W [(I-1)*C + (J-1)]
           = BaseAddress + 4[9*20 + 4]
           = BaseAddress + 4[180 + 4]
           = BaseAddress + 4 * 184
           = BaseAddress + 736
BaseAddress = 15000 736
           = 14264
LOC(ARR[30][10])
           = 14264 + 4[(30-1)*20 + (10-1)]
           = 14264 + 4[29*20 + 9]
           = 14264 + 4[580 + 9]
           = 14264 + 4*589
           = 14264 + 2356
           = 16620