In C, when you have a 2D array like `double A[2][3]`, the memory is laid out in a contiguous fashion in row major order. Assuming `sizeof(double)` is 8, let's analyze the memory layout.
Given that `A[0] = 0xFFAA0000`, this means that the starting address of `A` is `0xFFAA0000`. The size of each element in `A` is `sizeof(double)`, which is 8 in this case.
Therefore:
A[1] would start at the address `0xFFAA0000 + 3 * sizeof(double) = 0xFFAA0000 + 3 * 8 = 0xFFAA0018 (24 in decimal is same as 18 in hex )
So, the correct answer is: 0xFFAA0018