Like GMP, PBC can be instructed to use custom memory allocation functions. This must be done before any memory allocation is performed, usually at the beginning of a program before any other PBC functions have been called.
Also like GMP, the PBC wrappers around
realloc will print a message on standard error
and terminate program execution if the calls fail. Replacements
for these functions should act similarly.
However, unlike GMP, PBC does not pass the number of bytes
previously allocated along with the pointer in calls to
void pbc_set_memory_functions(void *(*malloc_fn)(size_t), void *(*realloc_fn)(void *, size_t), void (*free_fn)(void *))
Set custom allocation functions. The parameters must be function pointers to drop-in replacements for malloc, realloc and free, except that malloc and realloc should terminate the program on failure: they must not return in this case.