博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++三种内存分配方式
阅读量:6405 次
发布时间:2019-06-23

本文共 510 字,大约阅读时间需要 1 分钟。

  从静态存储区域分配:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。静态分配的区域的生命期是整个软件运行期,就是说从软件运行开始到软件终止退出。只有软件终止运行后,这块内存才会被系统回收

      在栈上创建: 在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但 是分配的内存容量有限。在栈中分配的空间的生命期与这个变量所在的函数和类相关。如果是函数中定义的局部变量,那么它的生命期就是函数被调用时,如果函数 运行结束,那么这块内存就会被回收。如果是类中的成员变量,则它的生命期与类实例的生命期相同。

      从堆上分配: 亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存 期由我们决定,使用非常灵活,但问题也最多。在堆上分配的内存,生命期是从调用new或者malloc开始,到调用delete或者free结束。如果不 掉用delete或者free。则这块空间必须到软件运行结束后才能被系统回收

转载地址:http://gunea.baihongyu.com/

你可能感兴趣的文章
自定义tabBar
查看>>
Python 文件读操作
查看>>
iOS--使用MWPhotoBrowser进行图片保存
查看>>
Android使用AndEngine创建第一个程序
查看>>
JBoss 系列七十八: jBPM 6 使用 Mysql 替换默认的 H2 数据库
查看>>
setTimeout 或 setInterval Uncaught ReferenceError: *** is not defined
查看>>
23种设计模式(9):访问者模式
查看>>
idea上用的插件
查看>>
如何基于web技术开发国产化网管软件
查看>>
基于maven2打包不同jdk版本的包
查看>>
【实战Java高并发程序设计】2–无锁的对象引用:AtomicReference
查看>>
江城子·钱难挣
查看>>
yii2.0验证
查看>>
css中font-size和size区别
查看>>
zookeeper单机伪集群配置
查看>>
网络编程 -金典echo案例
查看>>
2017年-09月工作日志
查看>>
EnglishHelperSystem-2.05.18
查看>>
已安装好npm需要更新到最新
查看>>
Python网络通信UDP广播流程
查看>>