数据存储方式:
1、未初始化的全局变量(.bss段)
2、初始化过的全局变量(.data段)
3、常量数据(.rodata段)
4、代码(.text段)
5、栈(stack)
6、堆(heap)
内存分配方式:
1、从静态存储区域分配。内存在程序编译时就已经分配好,这块内存在程序的整个运行期间都存在,如全局变量、static变量等。
2、在栈上创建。在执行函数时函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算使用内置于处理器的指令集,效率很高,反分配的内存有限。
3、从堆上分配,亦称动态内存分配,程序在运行时使用malloc或new申请所需要的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存周期由程序员决定,使用非常灵活,但问题也很多。