#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void print_array(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%3d ", arr[i]);
}
printf("\n");
}
int compfunc(const void * a, const void * b) {
return ( *(int*)a - *(int*)b );
}
int* merge_two_arrays_into_one_array(int arr1[], int size1, int arr2[], int size2) {
// Allocate memory for the merged array
int *arr12 = (int*)malloc((size1 + size2) * sizeof(int));
// Copy elements of the first array
memcpy(arr12, arr1, size1 * sizeof(int));
// Copy elements of the second array
memcpy(arr12 + size1, arr2, size2 * sizeof(int));
return arr12;
}
int main() {
int arr1[] = {1, 7, 3, 5};
int arr2[] = {2, 9, 0, 4, 6};
int size1 = sizeof(arr1) / sizeof(arr1[0]);
int size2 = sizeof(arr2) / sizeof(arr2[0]);
int* arr12 = merge_two_arrays_into_one_array(arr1, size1, arr2, size2);
print_array(arr12, size1 + size2);
qsort(arr12, size1 + size2, sizeof(int), compfunc);
print_array(arr12, size1 + size2);
free(arr12);
return 0;
}
/*
run:
1 7 3 5 2 9 0 4 6
0 1 2 3 4 5 6 7 9
*/