For managing dynamically allocated memory, the standard C library provides the functions malloc(), calloc(), realloc() and free(). In C99 and later, there is also aligned_alloc().  Some systems also provide alloca().
| name | description | 
|---|---|
size (malloc, realloc and aligned_alloc) | total size of the memory in bytes. For aligned_alloc the size must be a integral multiple of alignment. | 
size (calloc) | size of each element | 
| nelements | number of elements | 
| ptr | pointer to allocated memory previously returned by malloc, calloc, realloc or aligned_alloc | 
| alignment | alignment of allocated memory | 
Note that aligned_alloc() is only defined for C11 or later.
Systems such as those based on POSIX provide other ways of allocating aligned memory (e.g. posix_memalign()), and also have other memory management options (e.g. mmap()).