What is the address of (int) m[i][j] in terms of the base address and COLS? What are potential problems with strcpy() and strcat Why does scanf() take a pointer?
- What is the address of (int) m[i][j] in terms of the base address and COLS?
- What are potential problems with <code>strcpy()</code> and <code>strcat</code>
- Why does <code>scanf()</code> take a pointer?
1. What is the address of (int) m[i][j] in terms of the base address and COLS?
By Main order
If an array is declared using a[m][n], where m is the number of rows while n is the number of columns, then the address of the element a[i][j] of the array stored in major order is calculated as ,
Address(a[i][j]) = B. A. + (i * n + j) * size
where B. A. is the base address or the address of the first element of the array a[0][0] .
Example:
a[10...30, 55...75], base array address (BA) = 0, element size = 4 bytes .
Find the location of a[15][68].
Address(a[15][68]) = 0 +
((15 - 10) x (68 - 55 + 1) + (68 - 55)) x 4
= (5 x 14 + 13) x 4
= 83 x 4
= 332 responses
By main column order
If an array is declared using a[m][n], where m is the number of rows while n is the number of columns, then the address of the element a[i][j] of the array stored in major order is calculated as ,
Address (a[i][j]) = ((j*m)+i)*Size + BA
where BA is the base address of the array.
Example:
A [-5 ... +20][20 ... 70], BA = 1020, Element size = 8 bytes. Find the location of a[0][30].
Address [A[0][30]) = ((30-20) x 24 + 5) x 8 + 1020 = 245 x 8 + 1020 = 2980 bytes
Trending now
This is a popular solution!
Step by step
Solved in 3 steps