答
:
一、从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量。
二、在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
三、从堆上分配,亦称动态内存分配。程序在运行的时候用
malloc
或
new
申请任意多少的内存,程序员自己负责在何时用
free
或
delete
释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。
相关文章
- 【230403-4】从10种不同的药品中选6种,放入六个不同的瓶中,如果甲乙不宜放入1号瓶。问有几种不同的放法?
- 【C/C++动态内存 or 柔性数组】——对动态内存分配以及柔性数组的概念进行详细解读(张三 or 李四)
- java字符串拼接的几种方式
- 将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式的几种方式
- jvm对大对象分配内存的特殊处理(转)
- MySQL数据库的几种登录方式
- Wordpress存储用户身份验证数据的方式有哪些细节?
- 为什么我的程序在退出以后还在内存中?而必须要用结束任务的方式才能彻底关闭?
- Ajax获取数据的几种格式和解析方式
- 160728、Spark Streaming kafka 实现数据零丢失的几种方式