what is wrong
int **split_array(const int *s, int length) {
    int **new_split_array = malloc(sizeof(int*) * 2);
    if (length % 2 == 0) {
        new_split_array[0] = malloc(sizeof(int) * length / 2);
        new_split_array[1] = malloc(sizeof(int) * length / 2);
    } else {
        new_split_array[0] = malloc(sizeof(int) * length / 2);
        new_split_array[1] = malloc(length - (sizeof(int) * length / 2));
    }
    int even_index = 0;
    int odd_index = 0;
    for (int i = 0; i < length ; i++) {
        if (i % 2 == 0) {
            new_split_array[0][even_index] = s[i];
            even_index++;
        } else {
            new_split_array[1][odd_index] = s[i];
            odd_index++;
        }
    }

    return new_split_array;

}
