#include <stdio.h>
#include<stdlib.h>

int* mergeSorteArrays(int* arr1, int size1, int* arr2, int size2) {
    
    int* merged = (int*)malloc((size1 + size2) * sizeof(int));
    if(mered == NULL) {
        printf("Memory allocation failed\\n");
        exit(1);
    }
    
    int i = 0;
    int j = 0;
    int k = 0;
    
    while(i < size1 && j < size2) {
        if(*(arr1 + i) < *(arr2 + j)) {
            *(merged + k) = *(arr1 + i);
            i++;
        } else {
            *(merged + k) = *(arr2 + j);
            j++;
        }
        k++;
    }
    
    while(i < size1) {
        *(merged + k) = *(arr1 + i);
        i++;
        k++;
    }
    while(j < size2) {
        *(merged + k) = *(arr2 + j);
        j++;
        k++;
    }
    return merged;
}

int main() {
    int arr1[] = {1, 3, 5, 7};
    int arr2[] = {2, 4, 6, 8};
    
    int size1 = sizeof(arr1) / sizeof(arr1[0]);
    int size2 = sizeof(arr2) / sizeof(arr2[0]);
    int totalsize = size1 + size2;
    
    int* mergedArray = merSortedArrays(arr1, size1, arr2, size2);
    
    printf("The merged sorted array is: ");
    for(int i = 0; i < totalSize; i++) {
        printf("%d", *(mergedArray + i));
    }
    printf("\\n");
    
    free(mergedArray);
    
    return 0;
}