C++内存存储区域划分
面试笔试常考
内存中对数据的存储不是杂乱无章的,而是有相应的划分,根据数据类型分门别类安放到相应的位置。
存储的区域由最高存储地址到最低存储地址依次为:
- 命令行参数区:命令行参数和环境变量;
- 栈区(stack):指那些由编译器需要的时候分配,在不需要的时候自动清除的变量的存储区域。里面的变量通常是函数的参数值、局部变量等值,其操作方式类似于数据结构中的栈。
- 堆区(heap):动态分配内存。一般由程序员分配释放,若程序员不释放掉,在程序结束后,操作系统可能会自动回收。它与数据结构的堆是两码事,分配方式类似