#include #include int *range(int start, int end, int step){ size_t nitems = (end-start / step); // int *array = (int*)malloc(sizeof(int) * nitems); int *array = (int*)malloc(nitems); for(int i = start; i < end; i += step) array[i / step - 1] = i; /* * Suppose start = 3, end = 9, step = 3 * array[3/3 - 1] = 3 * array[6/3 - 1] = 6 * array[9/3 - 1] = 9 */ return (int*)array; } int main(){ int *r = range(3, 9, 3); printf("%d\n", r[0]); printf("%d\n", r[1]); free(r); return 0; }