InterviewSolution
Saved Bookmarks
| 1. |
An array S[10] [30] is stored in the memory along the column with each of its element occupying 2 bytes. Find out the memory location of S[5][10], if element S[2][15] is stored at the location 8200. |
|
Answer» OPTION 1: ASSUMING LBR=LBC=0 W=2 BYTES, NUMBER OF ROWS(M)=10, NUMBER OF COLUMNS(N)=30 LOC(S[I][J]) = B +(I + J*M)*W LOC(S[2][15]) = B +(2+15*10)* 2 8200 = B + (152*2) B = 8200 - 304 B = 7896 LOC(S[5][10]) = 7896 +(5+10*10)* 2 = 7896 + (105*2) = 7896 + 210 = 8106 OPTION 2: ASSUMING LBR=2,LBC=15 AND B = 8200 W=2 BYTES, NUMBER OF ROWS(M)=10, NUMBER OF COLUMNS(N)=30 LOC(S[I][J]) = B +((I-LBR) + (J-LBC)*M)*W LOC(S[5][10])= 8200 + ((5-2) + (10-15)*10)*2 = 8200 + (3 + (-5)*10) * 2 = 8200 + (3 + (-50)) * 2 = 8200 + (3 – 50) * 2 = 8200 + (-47) * 2 = 8200 – 94 = 8106 |
|