nuclear@2: /* dynarr - dynamic resizable C array data structure nuclear@2: * author: John Tsiombikas nuclear@2: * license: public domain nuclear@2: */ nuclear@2: #ifndef DYNARR_H_ nuclear@2: #define DYNARR_H_ nuclear@2: nuclear@2: void *dynarr_alloc(int elem, int szelem); nuclear@2: void dynarr_free(void *da); nuclear@2: void *dynarr_resize(void *da, int elem); nuclear@2: nuclear@2: int dynarr_empty(void *da); nuclear@2: int dynarr_size(void *da); nuclear@2: nuclear@2: /* stack semantics */ nuclear@2: void *dynarr_push(void *da, void *item); nuclear@2: void *dynarr_pop(void *da); nuclear@2: nuclear@2: nuclear@2: /* usage example: nuclear@2: * ------------- nuclear@2: * int *arr = dynarr_alloc(0, sizeof *arr); nuclear@2: * nuclear@2: * int x = 10; nuclear@2: * arr = dynarr_push(arr, &x); nuclear@2: * x = 5; nuclear@2: * arr = dynarr_push(arr, &x); nuclear@2: * x = 42; nuclear@2: * arr = dynarr_push(arr, &x); nuclear@2: * nuclear@2: * for(i=0; i