#include <stdio.h>
#include <stdlib.h>
int* merge_two_arrays(int arr1[], int arr2[], size_t size1, size_t size2) {
size_t size3 = size1 + size2;
int* arr3 = malloc(sizeof(int) * size3);
int i = 0, j = 0, k = 0;
while (i < size1 && j < size2) {
if (arr1[i] <= arr2[j])
arr3[k++] = arr1[i++];
else
arr3[k++] = arr2[j++];
}
while (i < size1) {
arr3[k++] = arr1[i++];
}
while (j < size2) {
arr3[k++] = arr2[j++];
}
return arr3;
}
int main()
{
int arr1[] = { 1, 2, 5, 7 };
int arr2[] = { 3, 4, 6 };
size_t size1 = sizeof(arr1) / sizeof(arr1[0]);
size_t size2 = sizeof(arr2) / sizeof(arr2[0]);
int* arr3 = merge_two_arrays(arr1, arr2, size1, size2);
for (int i = 0; i < size1 + size2; i++) {
printf("%2d", arr3[i]);
}
free(arr3);
return 0;
}
/*
run:
1 2 3 4 5 6 7
*/