From 7f968cba8e1245ff5ecc3421b1f0e7f019ef1496 Mon Sep 17 00:00:00 2001 From: MrGeorgen Date: Mon, 15 Jun 2020 18:38:24 +0200 Subject: [PATCH] Using acl Prefix --- src/array.c | 12 ++++-------- src/array.h | 4 ++-- src/main.c | 4 ++-- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/array.c b/src/array.c index 3949e5a..e600969 100644 --- a/src/array.c +++ b/src/array.c @@ -1,6 +1,7 @@ #include #include #include +#include union arraylist_meta { double dummy_double; @@ -15,7 +16,7 @@ union arraylist_meta { }; }; -void* arraylist_create(size_t array_size, size_t sizeof_one_element) { +void* acl_arraylist_create(size_t array_size, size_t sizeof_one_element) { union arraylist_meta *arraylist_new = malloc(array_size * sizeof_one_element + sizeof*arraylist_new); arraylist_new->len = array_size; arraylist_new->cap = array_size; @@ -23,19 +24,14 @@ void* arraylist_create(size_t array_size, size_t sizeof_one_element) { return arraylist_new+1; } -void* arraylist_append(void *arraylist_void, void *element_void) { - char *element = element_void; +void* acl_arraylist_append(void *arraylist_void, void *element) { union arraylist_meta *arraylist = arraylist_void; --arraylist; if(arraylist->len == arraylist->cap) { arraylist->cap = arraylist->len + 10; arraylist = realloc(arraylist, arraylist->cap * arraylist->sizeof_one_element + sizeof *arraylist); } - char *arraylist_char = (char*)(arraylist+1); - arraylist_char += arraylist->sizeof_one_element * arraylist->len; - for(size_t i = 0; i < arraylist->sizeof_one_element; ++arraylist_char, ++element, ++i) { - *arraylist_char = *element; - } + memcpy((char*)(arraylist + 1) + arraylist->sizeof_one_element * arraylist->len, element, arraylist->sizeof_one_element); ++arraylist->len; return arraylist+1; } diff --git a/src/array.h b/src/array.h index 7eb58fd..523f524 100644 --- a/src/array.h +++ b/src/array.h @@ -1,5 +1,5 @@ #ifndef array_h #define array_h -void* arraylist_create(size_t array_size, size_t sizeof_one_element); -void* arraylist_append(void *arraylist_void, void *element_void); +void* acl_arraylist_create(size_t array_size, size_t sizeof_one_element); +void* acl_arraylist_append(void *arraylist_void, void *element_void); #endif diff --git a/src/main.c b/src/main.c index 344d257..9d48d73 100644 --- a/src/main.c +++ b/src/main.c @@ -3,9 +3,9 @@ #include int main() { - int *int_array = arraylist_create(2, sizeof (int)); + int *int_array = acl_arraylist_create(2, sizeof (int)); int_array[0] = 28; int_array[1] = 20; - for(int i = 0; i < 10; ++i) arraylist_append(int_array, &i); + for(int i = 0; i < 10; ++i) acl_arraylist_append(int_array, &i); for(int i = 0; i < 12; ++i) printf("Index: %d Value: %d\n", i, int_array[i]); }