内存分区:
- 堆:由程序员手动分配和释放,完全不同于数据结构中的栈,分配方式类似于链表。由malloc(c语言)或new(C++)释放。若程序员不释放,程序结束时由系统释放。
- 栈:由编译器自动分配和释放的,存放函数的参数值、局部变量的值等。操作方式类似数据结构中的栈。
- 全局(静态存储器):存放全局变量和静态变量,包括DATA段(全局初始化区)与BSS段(全局未初始化区)。其中,初始化的全局变量和静态变量存放在DATA段,未初始化的全局变量和未初始化的静态变量存放在BSS段。程序结束后有系统释放。