Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,990 questions

51,935 answers

573 users

How to merge three arrays in C

2 Answers

0 votes
#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 sizeA = 3, sizeB = 2, sizeC = 4;

    // Allocate dynamic arrays
    int *a = malloc(sizeA * sizeof(int));
    int *b = malloc(sizeB * sizeof(int));
    int *c = malloc(sizeC * sizeof(int));

    // Fill arrays with sample values
    a[0] = 1; a[1] = 2; a[2] = 3;
    b[0] = 4; b[1] = 5;
    c[0] = 6; c[1] = 7; c[2] = 8; c[3] = 9;

    int mergedSize;
    int *merged = mergeArrays(a, sizeA, b, sizeB, c, sizeC, &mergedSize);

    printf("Merged array: ");
    printArray(merged, mergedSize);

    // Free memory
    free(a);
    free(b);
    free(c);
    free(merged);

    return 0;
}


/*
run:

Merged array: 1 2 3 4 5 6 7 8 9 

*/

 



answered 12 hours ago by avibootz
0 votes
#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 

*/

 



answered 12 hours ago by avibootz

Related questions

...