X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=libs%2Fgoat3d%2Fsrc%2Fdynarr.h;fp=libs%2Fgoat3d%2Fsrc%2Fdynarr.h;h=619feebb311919884e80a654b07893eb85e75f5f;hb=487d801f62b3f7cea009b5e560cfd06e57170970;hp=0000000000000000000000000000000000000000;hpb=103b67f9f1e041dc5f6ffbb59004ebe846e3f3f9;p=deeprace diff --git a/libs/goat3d/src/dynarr.h b/libs/goat3d/src/dynarr.h new file mode 100644 index 0000000..619feeb --- /dev/null +++ b/libs/goat3d/src/dynarr.h @@ -0,0 +1,90 @@ +/* dynarr - dynamic resizable C array data structure + * author: John Tsiombikas + * license: public domain + */ +#ifndef DYNARR_H_ +#define DYNARR_H_ + +#define dynarr_alloc g3dimpl_dynarr_alloc +#define dynarr_free g3dimpl_dynarr_free +#define dynarr_resize g3dimpl_dynarr_resize +#define dynarr_empty g3dimpl_dynarr_empty +#define dynarr_size g3dimpl_dynarr_size +#define dynarr_clear g3dimpl_dynarr_clear +#define dynarr_push g3dimpl_dynarr_push +#define dynarr_pop g3dimpl_dynarr_pop +#define dynarr_finalize g3dimpl_dynarr_finalize + +/* usage example: + * ------------- + * int *arr = dynarr_alloc(0, sizeof *arr); + * + * int x = 10; + * arr = dynarr_push(arr, &x); + * x = 5; + * arr = dynarr_push(arr, &x); + * x = 42; + * arr = dynarr_push(arr, &x); + * + * for(i=0; i