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

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,631 questions

55,366 answers

573 users

How to get array subset in C

1 Answer

0 votes
#include <stdio.h>
#include <stdlib.h>

int* allocateSubset(int length) {
    int* subset = (int*)malloc(length * sizeof(int));
    
    if (subset == NULL) {
        printf("Memory allocation failed.\n");
        exit(1); // Exit the program if memory allocation fails
    }
    
    return subset;
}

void getSubset(int* array, int startIndex, int length, int size, int* subset) {
    // Validate the range
    if (startIndex < 0 || startIndex + length > size) {
        printf("Invalid range: Subset exceeds array bounds.\n");
        exit(1); // Exit the program if the range is invalid
    }

    // Copy elements from the original array to the subset
    for (int i = 0; i < length; i++) {
        subset[i] = array[startIndex + i];
    }
}

int main() {
    int arr[] = {3, 7, 9, 0, 4, 2, 1, 8};  
    int size = sizeof(arr) / sizeof(arr[0]);
    int startIndex = 2;  // Start index for the subset
    int length = 4;      // Number of elements in the subset

    int* subset = allocateSubset(length);

    getSubset(arr, startIndex, length, size, subset);

    printf("Subset: ");
    for (int i = 0; i < length; i++) {
        printf("%d ", subset[i]);
    }
    printf("\n");

    free(subset);

    return 0;
}


/*
run:

Subset: 9 0 4 2 

*/

 



answered Mar 24, 2025 by avibootz
...