In Chapter 2, Virtual Memory, we learned that there are regions or segments meant for the use of dynamic memory-allocation within the process of Virtual Address Space (VAS). The heap segment is one such dynamic region—a free gift of memory made available to the process for its runtime consumption.
How exactly does the developer exploit this gift of memory? Not just that, the developer has to be extremely careful with matching memory allocations to subsequent memory frees, otherwise the system isn't going to like it!
The GNU C library (glibc) provides a small but powerful set of APIs to enable the developer to manage dynamic memory; the details of their usage is the content of this section.
As you will come to see, the memory-management APIs are literally a handful: malloc(3), calloc, realloc, and free. Still, using them correctly remains...