Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <errno.h>
- typedef struct
- {
- size_t size;
- size_t position;
- int arrm[1];
- } myarr;
- void arr_check_and_push(myarr **arr, int *a)
- {
- if ( (*arr)->size <= (*arr)->position)
- {
- (*arr)->size <<= 1;
- //fprintf (stderr ,"realloc(%p, %zu)",*arr,(*arr)->size * sizeof(int) + sizeof(size_t) * 2);
- *arr = (myarr *)realloc(*arr, (*arr)->size * sizeof(int) + sizeof(size_t) * 2);
- if ((void *)*arr == NULL)
- exit(ENOMEM);
- }
- (*arr)->arrm[(*arr)->position++] = *a;
- }
- int main ()
- {
- myarr *arr = (myarr*)malloc(sizeof(size_t)*2+sizeof(int));
- arr->size = 1;
- arr->position = 0;
- arr->arrm[0] = 0;
- for (int i = 0; i <= 9999999; i++ )
- arr_check_and_push(&arr, &i);
- /*
- for (size_t i = 0; i < arr->position; i++ )
- printf("%i ", arr->arrm[i]);
- */
- free(arr);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement