diff options
| author | Johnny Richard <johnny@johnnyrichard.com> | 2025-04-14 23:22:57 +0200 |
|---|---|---|
| committer | Johnny Richard <johnny@johnnyrichard.com> | 2025-04-14 23:22:57 +0200 |
| commit | b3bd068f614a46580ee3e5688dd9cfd40694d75b (patch) | |
| tree | 45183f99a8373527caa03ff473c4e40fe07cd459 /src/array.h | |
| parent | 63104d34e1c1772131f6366f825e67f38d027dba (diff) | |
Signed-off-by: Johnny Richard <johnny@johnnyrichard.com>
Diffstat (limited to 'src/array.h')
| -rw-r--r-- | src/array.h | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/array.h b/src/array.h index 5119e7e..a98b92a 100644 --- a/src/array.h +++ b/src/array.h @@ -20,32 +20,34 @@ #define ARRAY_INITIAL_CAPACITY 4 -#define array(T) (T *)array_new(sizeof(T)) - -#define array_append(arr, item) do { \ - array_header_t *h = array_get_header(arr); \ - if (h->capacity < h->length + 1) { \ - arr = array_grow(arr); \ - } \ - arr[h->length++] = item; \ +#define array(T) (T*)array_new(sizeof(T)) + +#define array_append(arr, item) \ + do { \ + array_header_t* h = array_get_header(arr); \ + if (h->capacity < h->length + 1) { \ + arr = array_grow(arr); \ + } \ + arr[h->length++] = item; \ } while (0) -typedef struct array_header { +typedef struct array_header +{ size_t capacity; size_t item_size; size_t length; } array_header_t; -void * +void* array_new(size_t item_size); -array_header_t * -array_get_header(void *arr); +array_header_t* +array_get_header(void* arr); -void * -array_grow(void *arr); +void* +array_grow(void* arr); size_t -array_length(void *arr); +array_length(void* arr); #endif /* ARRAY_H */ |
