2.2.1 Allocator¶
-
typedef void *(*ZixAlignedAllocFunc)(ZixAllocator *allocator, size_t alignment, size_t size)¶
General aligned_alloc-like memory deallocation function.
This works like the standard C aligned_alloc(), except has an additional handle parameter for implementing stateful allocators without static data.
-
typedef void (*ZixAlignedFreeFunc)(ZixAllocator *allocator, void *ptr)¶
General aligned memory deallocation function.
This works like the standard C free(), but must be used to free memory allocated with the aligned_alloc() method of the allocator. This allows portability to systems (like Windows) that can’t use the same free function in these cases.
-
typedef struct ZixAllocatorImpl ZixAllocator¶
A memory allocator.
This object-like structure provides an interface like the standard C functions malloc(), calloc(), realloc(), free(), and aligned_alloc(). It contains function pointers that differ from their standard counterparts by taking a context parameter (a pointer to this struct), which allows the user to implement custom stateful allocators.
-
typedef void *(*ZixCallocFunc)(ZixAllocator *allocator, size_t nmemb, size_t size)¶
General calloc-like memory allocation function.
This works like the standard C calloc(), except has an additional handle parameter for implementing stateful allocators without static data.
-
typedef void (*ZixFreeFunc)(ZixAllocator *allocator, void *ptr)¶
General free-like memory deallocation function.
This works like the standard C remalloc(), except has an additional handle parameter for implementing stateful allocators without static data.
-
typedef void *(*ZixMallocFunc)(ZixAllocator *allocator, size_t size)¶
General malloc-like memory allocation function.
This works like the standard C malloc(), except has an additional handle parameter for implementing stateful allocators without static data.
-
typedef void *(*ZixReallocFunc)(ZixAllocator *allocator, void *ptr, size_t size)¶
General realloc-like memory reallocation function.
This works like the standard C remalloc(), except has an additional handle parameter for implementing stateful allocators without static data.
-
struct ZixAllocatorImpl¶
Definition of
ZixAllocator
.-
ZixMallocFunc malloc¶
Allocate.
-
ZixCallocFunc calloc¶
Allocate and zero.
-
ZixReallocFunc realloc¶
Reallocate.
-
ZixFreeFunc free¶
Free.
-
ZixAlignedAllocFunc aligned_alloc¶
Allocate aligned.
-
ZixAlignedFreeFunc aligned_free¶
Free aligned.
-
ZixMallocFunc malloc¶
-
void *zix_aligned_alloc(ZixAllocator *const allocator, const size_t alignment, const size_t size)¶
Convenience wrapper that defers to the system allocator if allocator is null.
-
void zix_aligned_free(ZixAllocator *const allocator, void *const ptr)¶
Convenience wrapper that defers to the system allocator if allocator is null.
-
void *zix_calloc(ZixAllocator *const allocator, const size_t nmemb, const size_t size)¶
Convenience wrapper that defers to calloc() if allocator is null.
-
ZixAllocator *zix_default_allocator(void)¶
Return the default allocator which simply uses the system allocator.
-
void zix_free(ZixAllocator *const allocator, void *const ptr)¶
Convenience wrapper that defers to free() if allocator is null.
-
void *zix_malloc(ZixAllocator *const allocator, const size_t size)¶
Convenience wrapper that defers to malloc() if allocator is null.
-
void *zix_realloc(ZixAllocator *const allocator, void *const ptr, const size_t size)¶
Convenience wrapper that defers to realloc() if allocator is null.