Consider an array A[20, 10], assume 4 words per memory cell and the base address of array A is 100. What is the address of A[11, 5] ? Assume row major storage.
560
In row major order, the address of element A[i, j] in an array with n columns is \(\text{Base} + (i \times n + j) \times w\), where w is the size of one element and indices start from 0.
Here the array has 20 rows and n = 10 columns, the base address is 100 and w = 4 words.
Number of elements before A[11, 5] = \(11 \times 10 + 5 = 115\).
Address = \(100 + 115 \times 4 = 100 + 460 = 560\).
Hence, the answer is 560.
A three dimensional array in ‘C’ is declared as int A[x][y][z]. Here, the address of an item at the location A[p][q][r] can be computed as follows (where w is the word length of an integer) :
When we pass an array as an argument to a function, what actually gets passed ?
Given
int arr[3][4][2]= {{{2,4},{7,8},{3,4},{5,6}},{{7,6},{3,4},{5,3},{2,3}},{{8.9},{7,2},{3,4},{5,1}}};
Which one of the following can be used to refer to element 1 in the above 3-d array?
Which of the following is true for computation time in insertion, deletion and finding maximum and minimum element in a sorted array ?
When an array is passed as parameter to a function, which of the following statements is correct ?
Consider the following C program segment.
#include <stdio.h>
int main()
{
char s1[7] = "1234";
char *p;
p = s1 + 2;
*p = '0';
printf("%s", s1);
return 0;
}
#include <stdio.h>
void foo(int *p, int x){
*p = x;
}
int main(){
int *z;
int a = 20, b = 25;
z = &a;
foo(z, b);
printf("%d", a);
return 0;
}
What is the output the given C language code snippet?
#include<stdio.h>
int main()
{
int x[] = {10,20,30};
int *p = x;
p++;
printf("%d",*p);
return 0;
}
Which of the following expression will delete the entire array pointed to by q?