#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 = malloc(40); // Allocated 10 instead of 40 int *s = malloc(30); for(int i = 0; i < 10; i++) r[i] = i; for(int i = 0; i < 10; i++) printf("%d\n", r[i]); free(r); return 0; }