refactor: executable per day
This commit is contained in:
27
array_list.h
27
array_list.h
@@ -23,3 +23,30 @@ void alist_free(array_list *alist);
|
||||
#define ADVENT_OF_CODE_2023_ARRAY_LIST_H
|
||||
|
||||
#endif //ADVENT_OF_CODE_2023_ARRAY_LIST_H
|
||||
|
||||
//#define ARRAY_LIST_IMPLEMENTATION
|
||||
#ifdef ARRAY_LIST_IMPLEMENTATION
|
||||
|
||||
array_list* alist_create(int capacity) {
|
||||
array_list *alist = malloc(sizeof (struct array_list_struct));
|
||||
alist->data = malloc(sizeof (ELEMENT_TYPE) * capacity);
|
||||
alist->capacity = capacity;
|
||||
alist->length = 0;
|
||||
return alist;
|
||||
}
|
||||
|
||||
void alist_add(array_list *alist, ELEMENT_TYPE entry) {
|
||||
if(alist->length >= alist->capacity) {
|
||||
alist->data = realloc(alist->data, alist->capacity * 2);
|
||||
alist->capacity = alist->capacity * 2;
|
||||
}
|
||||
|
||||
alist->data[alist->length++] = entry;
|
||||
}
|
||||
|
||||
void alist_free(array_list *alist) {
|
||||
free(alist->data);
|
||||
free(alist);
|
||||
}
|
||||
|
||||
#endif //ARRAY_LIST_IMPLEMENTATION
|
||||
|
||||
Reference in New Issue
Block a user