#include <stdio.h>
#include <stdlib.h>
// Function to merge three arrays
int* mergeArrays(int *a, int sizeA, int *b, int sizeB, int *c, int sizeC, int *mergedSize) {
*mergedSize = sizeA + sizeB + sizeC;
int *merged = malloc((*mergedSize) * sizeof(int));
if (!merged) {
printf("Memory allocation failed\n");
exit(1);
}
int index = 0;
// Copy array a
for (int i = 0; i < sizeA; i++)
merged[index++] = a[i];
// Copy array b
for (int i = 0; i < sizeB; i++)
merged[index++] = b[i];
// Copy array c
for (int i = 0; i < sizeC; i++)
merged[index++] = c[i];
return merged;
}
// Helper function to print an array
void printArray(int *arr, int size) {
for (int i = 0; i < size; i++)
printf("%d ", arr[i]);
printf("\n");
}
int main() {
int a[] = {1, 2, 3};
int b[] = {4, 5};
int c[] = {6, 7, 8, 9};
int sizeA = sizeof(a) / sizeof(a[0]);
int sizeB = sizeof(b) / sizeof(b[0]);
int sizeC = sizeof(c) / sizeof(c[0]);
int mergedSize;
int *merged = mergeArrays(a, sizeA, b, sizeB, c, sizeC, &mergedSize);
printf("Merged array: ");
printArray(merged, mergedSize);
// Free memory
free(merged);
return 0;
}
/*
run:
Merged array: 1 2 3 4 5 6 7 8 9
*/