栈与堆
- 栈(Stack):
- 栈用于存储局部变量和函数调用信息。栈上的内存是由系统自动管理的,当函数返回时,分配给改函数的栈内存会自动释放。
- 栈的大小是有限的,通常比较小。
- 堆(Heap):
- 堆用于动态内存分配。通过调用
malloc
、calloc
或realloc
函数从堆中分配内存。这些内存块的生命周期由程序员管理,需要手动释放(例如通过free
函数)。 - 堆的大小通常较大,可以用于存储需要在函数返回后仍然存在的数据。
- 堆用于动态内存分配。通过调用
malloc
、calloc
或realloc
函数从堆中分配内存。这些内存块的生命周期由程序员管理,需要手动释放(例如通过free
函数)。