# opalloc **Repository Path**: ACleverDisguise/opalloc ## Basic Information - **Project Name**: opalloc - **Description**: No description available - **Primary Language**: C - **License**: WTFPL - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-01-25 - **Last Updated**: 2022-02-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: embedded, allocator ## README # Object Pool Allocator An "object pool" framework for minimally-fragmenting interlaced dynamic allocation and deallocation of dynamic memory objects in C. In embedded and small-memory systems, excessive use of dynamically allocated objects can cause heap fragmentation such that, despite there being sufficient free space in the heap for an object, calls to `malloc()` and related functions fail because no single block is large enough to fulfill the desired request. This library provides an implementation of a smarter memory pool manager that combats this problem by minimizing the number of interlaced allocations, deallocations and reallocations at a slight expense in memory and CPU overhead. It supplies a low level interface for building custom allocators in cases where fine control is needed, a high level interface for the most common and simple use cases, and a macro interface for the easiest use case. C.f. https://personaljournal.ca/qqmrichter/dynamically-static-allocation-in-embedded-systems for details on implementation and rationale.