/
nirinis
/
MalachiteDSL
Обзор
Документация
Войти
/
nirinis
/
MalachiteDSL
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
include/utils/array/madsl_dynamic_array.h
64 строки
2 KB
nirinis
Appending of fundamental files
02 авг 2026, 18:43
Верифицирован
02 авг 2026, 18:43
17af66b
Код
Авторство
О чём код?
#include "..\..\common\madsl_common.h" #ifndef MADSL_DYNAMIC_ARRAY_H #define MADSL_DYNAMIC_ARRAY_H #define MADSL_DYNAMIC_ARRAY_MIN_SIZE 50 typedef void (*madsl_dynamic_array_element_destructor)(void* element); typedef void(*madsl_dynamic_array_element_handler)(madsl_byte* element, madsl_byte* user_data); //for map function typedef struct { uint16_t cell_size; size_t capacity; size_t size; madsl_byte* data; madsl_dynamic_array_element_destructor element_destructor; } madsl_dynamic_array; madsl_dynamic_array* madsl_dynamic_array_init(uint16_t cell_size); madsl_dynamic_array* madsl_dynamic_array_init_uc(uint16_t cell_size, size_t user_capacity); //uc - user capacity void madsl_dynamic_array_destroy(madsl_dynamic_array* array); int madsl_dynamic_array_push_back(madsl_dynamic_array* array, madsl_byte* data); int madsl_dynamic_array_insert_back(madsl_dynamic_array* array, madsl_byte* data, size_t count); //inserts array's (ptr) data in end of array int madsl_dynamic_array_insert_back_a(madsl_dynamic_array* to, madsl_dynamic_array* from, size_t count); int madsl_dynamic_array_pop_back(madsl_dynamic_array* array); void* madsl_dynamic_array_get(madsl_dynamic_array* array, size_t index); int madsl_dynamic_array_set(madsl_dynamic_array* array, size_t index, madsl_byte* data); int madsl_dynamic_array_set_ex(madsl_dynamic_array* array, size_t index, madsl_byte* data); //If index is above than size array will be expanded int madsl_dynamic_array_clear(madsl_dynamic_array* array);//doesnt clear array_structure memory int madsl_dynamic_array_reserve(madsl_dynamic_array* array, size_t new_capacity); int madsl_dynamic_array_shrink_to_fit(madsl_dynamic_array* array); int madsl_dynamic_array_reallocate(madsl_dynamic_array* array, size_t expanding_coefficient); void madsl_dynamic_array_set_destructor(madsl_dynamic_array* array, madsl_dynamic_array_element_destructor destructor); void madsl_dynamic_array_map(madsl_dynamic_array* array, madsl_dynamic_array_element_handler handler, madsl_byte* user_data); int madsl_dynamic_array_contains(madsl_dynamic_array* array, madsl_byte* element); madsl_dynamic_array* madsl_dynamic_array_intersection(madsl_dynamic_array* array1, madsl_dynamic_array* array2); #endif