Hi, this is a (working?) memory handler. Meaning you can reserve any amount of memory (as long at there is enough) in 2 differents ways: on the stack and on the heap ! The stack is a basic stack : allocate on top of previous allocations and delet from top to bottom. The heap is a first-fit implementation using a binary tree to efficiently find a fitting chunk. The C programming language allocate memory in this way (i actually dont know if it uses first-fit/best-fit/worst-fit) (and it uses red-black trees but anyway) for the heap and the stack !! I have not tested the speed of the implementation so it might be slower than a simple linear implementation in practice idk... It does support separated memory chunks (when using threads for exemples), the heap and the stack are completely separated meaning that multiple programs can share the heap or the stack (the latter is not recommended tho...) You are free to use it (was made for people wanting to make a programing language without wanting to deal with how to allocate memory in a fast way) just credit thanks (and have fun)!! Complexity are inside the project The heap memory is implemented using a binary search tree (can be improved: see https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree#Implementations) to be more precised, two binary search tree: one for the size of the memory chunk and one for the memory adress related to the chunk (each nodes are in both trees) Credits : I've done everything by myself except having the stack being a stack (i don't know who got the idea tho...) [don't mind this] #memory #computers #computer #C