From 9ef0abf7ab5266f6b58c0e55bbe9dd9038bc7f6e Mon Sep 17 00:00:00 2001 From: Carson Fleming Date: Sat, 14 Feb 2026 02:53:37 -0500 Subject: more like dangerousc.org atp --- array.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) (limited to 'array.c') diff --git a/array.c b/array.c index 7d55041..abbe5b0 100644 --- a/array.c +++ b/array.c @@ -4,27 +4,24 @@ #include #define CRASH_IF_OOB(array, len) {\ - if (len > array.length)\ - crash("Array access out of bounds: %ld > %ld\n", len, array.length);\ + if (len > array->length)\ + crash(\ + "Array does not have expected length: %ld > %ld\n",\ + len,\ + array->length);\ } -void* array_at(const array_t array, size_t idx) { - CRASH_IF_OOB(array, idx); - return (char*)array.__data + idx*array.elemsz; +void* array_at(const array_t* array, size_t idx) { + CRASH_IF_OOB(array, idx + 1); + return (char*)array->__data + idx*array->elemsz; } -array_t array_slice(const array_t array, size_t start, size_t length) { +array_t array_slice(const array_t* array, size_t start, size_t length) { CRASH_IF_OOB(array, start + length); - array_t slice = { + return (array_t) { .length = length, - .__data = (char*)array.__data + start * array.elemsz + .__data = (char*)array->__data + start * array->elemsz }; - return slice; -} - -array_t array_init(void* data, size_t length, size_t elemsz) { - array_t array = {.length = length, .elemsz = elemsz, .__data = data}; - return array; } array_t array_heap_alloc(size_t length, size_t elemsz) { @@ -35,12 +32,11 @@ array_t array_heap_alloc(size_t length, size_t elemsz) { length, elemsz); - array_t container = { + return (array_t) { .length = length, .elemsz = elemsz, .__data = data_ptr, }; - return container; } void array_heap_destroy(array_t array) { -- cgit v1.2.3