I am trying to solve the Dynamic Array problem of Hackerrank in C. I tried so many ways but all in vain. The best I could do is to clear 4 test cases. I am getting a segmentation error. Please help me find where am I doing wrong. It will be really helpful.
Question Link: https://www.hackerrank.com/challenges/dynamic-array/problem
We are supposed to complete the function. So here is my attempt:
int *dynamicArray(int n, int queries_rows, int queries_columns, int **queries, 
                  int *result_count) {
    *result_count = 0;
    int *result = (int *)malloc(queries_rows * sizeof(int));
    int i = 0, j = 0, y, x;
    int lastAnswer = 0;
    int **arr = (int **)malloc(n * sizeof(int *));
    int *size = (int *)malloc(n * sizeof(int));
    for (i = 0; i < n; i++) {
        size[i] = 0;
    }
    for (i = 0; i < n; i++) {
        arr[i] = (int *)malloc(n * sizeof(int));
    }
    for (i = 0; i < queries_rows; i++) {
        x = queries[i][1];
        y = queries[i][2];
        if (queries[i][0] == 1) {
            size[(x ^ lastAnswer) % n]++;
            arr[(x ^ lastAnswer) % n][size[(x ^ lastAnswer) % n] - 1] = y;
        } else {
            lastAnswer = arr[(x ^ lastAnswer) % n][y % size[(x ^ lastAnswer) % n]];
            printf("%d\n", lastAnswer);
            (*result_count)++;
            result[(*result_count) - 1] = lastAnswer;
        }
    }
    result = (int *)realloc(result, (*result_count) * sizeof(int));
    return result;
}
 
    