7.1.2 Allocating Memory on the Heap: malloc() and free()
In general, C programs use the malloc family of functions to allocate and deallocate memory on the heap. These functions offer several advantages over brk() and sbrk(). In particular, they:
? are standardized as part of the C language;
? are easier to use in threaded programs;
? provide a simple interface that allows memory to be allocated in small units; and
? allow us to arbitrarily deallocate blocks of memory, which are maintained on a free list and recycled in future calls to allocate memory.
Summary
Using the malloc family of functions, a process can dynamically allocate and release memory on the heap.
In considering the implementation of these functions, we saw that various things can go wrong in a program that mishandles the blocks of allocated memory, and we noted that a number of debugging tools are available to help locate the source of such errors.
The alloca() function allocates memory on the stack. This memory is automatically deallocated when the function that calls alloca() returns