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
本文探讨了C语言中堆内存的动态分配与释放,重点介绍了malloc家族函数的优势,包括标准化、多线程友好、小单位分配及任意块释放等特性。同时,概述了这些函数在实际应用中的常见错误及其调试工具。
658

被折叠的 条评论
为什么被折叠?



