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.