will this compile
int *build_array(char **strs, int size) {
    int *arr = malloc(sizeof(int) * size);
    for (int i = 0; i < size; i++) {
        arr[i] = strtol(strs[i], NULL, 10);
    }
    return arr;
}
int **split_array(const int *s, int length) {
    int **arrays = malloc(sizeof(int *) * 2);
    int *arr_even = malloc(sizeof(int) * ((length / 2) - (length % 2)));
    int *arr_odd = malloc(sizeof(int) * ((length / 2) + (length % 2)));
    int even_count = 0;
    int odd_count = 0;
    for (int i = 0; i < length; i++) {
        if (i % 2 == 0) {
            arr_even[even_count] = s[i];
            even_count++;
        } else {
            arr_odd[odd_count] = s[i];
            odd_count++;
        }
    }
    arrays[0] = arr_even;
    arrays[1] = arr_odd;
    return arrays;

}

int main(int argc, char **argv) {
    /* Replace the comments in the next two lines with the appropriate
       arguments.  Do not add any additional lines of code to the main
       function or make other changes.
     */
    int *full_array = build_array(argv[1], argc - 1);
    int **result = split_array(full_array, sizeof(full_array));

    printf("Original array:\n");
    for (int i = 0; i < argc - 1; i++) {
        printf("%d ", full_array[i]);
    }
    printf("\n");

    printf("result[0]:\n");
    for (int i = 0; i < argc / 2; i++) {
        printf("%d ", result[0][i]);
    }
    printf("\n");

    printf("result[1]:\n");
    for (int i = 0; i < (argc - 1) / 2; i++) {
        printf("%d ", result[1][i]);
    }
    printf("\n");
    free(full_array);
    free(result[0]);
    free(result[1]);
    free(result);
    return 0;
}
