diff options
Diffstat (limited to 'array.c')
| -rw-r--r-- | array.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -7,20 +7,23 @@ void array_set(array_t* array, size_t idx, void* val) { CRASH_IF_OOB(array, idx); - array->data[idx] = val; + char* data_ptr = (char*)array->__data + idx*array->elemsz; + for (size_t i = 0; i < array->elemsz; i++) { + data_ptr[i] = *((char*)val + i); + } } void* array_get(const array_t* array, size_t idx) { CRASH_IF_OOB(array, idx); - return array->data[idx]; + return (char*)array->__data + idx*array->elemsz; } void str_set(str_t* str, size_t idx, char val) { CRASH_IF_OOB(str, idx); - str->data[idx] = val; + str->__data[idx] = val; } char str_get(const str_t* str, size_t idx) { CRASH_IF_OOB(str, idx); - return str->data[idx]; + return str->__data[idx]; } |
