-
Consider the following two C code segments. Y and X are one and two dimensional arrays of size n and n × n respectively, where 2 ≤ n ≤ 10. Assume that in both code segments, elements of Y are initialized to 0 and each element X[i] [j] of array X is initialized to i + j. Further assume that when stored in main memory all elements of X are in same main memory page frame.
Code segment 1 :
//initialize elements of Y to 0
//initialize elements X[i] [j] of X to i+j
for (i = 0; i < n; i++)
Y[i] += X[0] [i];
Code segment 2 :
//initialize elements of Y to 0
//initialize elements X[i] [j] of X to i+j
for (i = 0; i < n; i++)
Y[i] += X[i] [0];
Which of the following statements is/are correct?
S1 : Final contents of array Y will be same in both code segments
S2 : Elements of array X accessed inside the for loop shown in code segment 1 are contiguous in main memory
S3 : Elements of array X accessed inside the for loop shown in code segment 2 are contiguous in main memory
-
- Only S2 is correct
- Only S3 is correct
- Only S1 and S2 are correct
- Only S1 and S3 are correct
- Only S2 is correct
Correct Option: C
NA