c++释放内存的方法(c++ 获得内存使用情况)

本期是C++基础语法分享的第八节,今天给大家来分享一下: (1)内存分配和管理; (2)malloc、free; (3)new、delete; (4)定位new; (5)deletethis合法吗? (6)如何定义一个只能在堆上(栈上)生成对象的类? 内存分配和管理 malloc、calloc、realloc、alloca malloc:申请指定字节数的内存。申请到的内存中的初始值不确定。 cal…

今天是C 基本英语的语法共享的第八节,今日给大伙儿来共享一下:

(1)内存分配和管理方法;

(2)malloc、free;

(3)new、delete;

(4)精准定位 new;

(5)delete this 合理合法吗?

(6)怎样界定一个只有在堆中(栈上)形成目标的类?

C

内存分配和管理方法

malloc、calloc、realloc、alloca

malloc:申请特定字节数的内存。申请到的内存中的默认值不确定性。

calloc:为特定尺寸的目标,分配能容下其特定数量的内存。申请到的内存的每一位(bit)都复位为 0。

realloc:变更之前分配的内存长短(提升或降低)。当提升长短时,很有可能需将之前分配区的內容挪到另一个充分大的地区,而新增加地区内的默认值则不确定性。

alloca:在栈上申请内存。程序流程在出栈的情况下,会自行释放出来内存。可是必须留意的是,alloca 没有可扩展性, 并且在并没有传统式局部变量的设备上难以完成。alloca 不适合应用在务必普遍移殖的流程中。C99 中适用拉长二维数组 (VLA),可以用于取代 alloca。

malloc、free

用以分配、释放出来内存

malloc、free 应用

申请内存,确定是不是申请取得成功

char *str = (char*) malloc(100);
assert(str != nullptr);

释放出来内存后表针置空

free(p); 
p = nullptr;

new、delete

new / new[]:进行2件事,先最底层启用 malloc 分配了内存,随后启用构造方法(创建对象)。

delete/delete[]:也进行2件事,先启用析构函数(清除网络资源),随后最底层启用 free 释放出来室内空间。

new 在申请内存的时候会全自动计算机所需字节数,而 malloc 则需我们自己键入申请内存室内空间的字节数。

new、delete 应用

申请内存,确定是不是申请取得成功

int main()
{
    T* t = new T();     // 先内存分配 ,再构造方法
    delete t;           // 先析构函数,再内存释放出来
    return 0;
}

精准定位 new

定位 new(placement new)容许大家向 new 传送超额的详细地址主要参数,进而在预先指定的内存地区创建对象。

new (place_address) type
new (place_address) type (initializers)
new (place_address) type [size]
new (place_address) type [size] { braced initializer list }

(1)place_address 是个表针

(2)initializers 给予一个(很有可能为空的)以分号隔开的默认值目录

delete this 合理合法吗?

合法,但:

务必确保 this 目标是根据 new(并不是 new[]、不是 placement new、并不是栈上、不是全局性、并不是别的目标组员)分配的

务必确保启用 delete this 的成员函数是最后一个调用 this 的成员函数

务必确保成员函数的 delete this 后边并没有启用 this 了

务必确保 delete this 后没人应用了

怎样界定一个只有在堆中(栈上)形成目标的类?

只有在堆中

方式:将析构函数设定为私有化

缘故:C 是静态数据关联语言表达,c语言编译器管理方法栈上目标的生命期,c语言编译器在为类目标分配栈室内空间时,会先查验类的析构函数的浏览性。若析构函数不能浏览,则无法在栈上创建对象。

只有在栈上

方式:将 new 和 delete 轻载为私有化

缘故:在堆中形成目标,应用 new 关键字实际操作,其全过程分成两环节:第一阶段,应用 new 在堆中找寻可以用内存,分配给目标;第二阶段,启用构造方法形成目标。将 new 实际操作设定为私有化,那麼第一阶段就没法进行,也不可以在堆中形成目标。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年5月12日 下午2:08
下一篇 2022年5月12日 下午2:09

相关推荐

  • 适合公司年会的节目有哪些,4个超级有创意的节目推荐给你

    策划年会以及设计年会的节目常常是让公司策划小组最头疼的一件事情。在节目的设计上,要结合员工排练时间和实际水平又得考虑舞台效果和氛围。为了营造一场有趣、生动又不尬的年会,以下几种创意实用的年会节目,值得参考噢~ No.1舞蹈类 1.反串舞蹈 男生反串舞蹈,如《朱碧石舞蹈》非常的洗脑和搞笑。仿妆仿人,加上服装的搭配,绝对是年会节目上一道亮丽的风景线。 2.流行舞蹈 如爵士舞、街舞类poping、bre…

    2022年9月27日
    570
  • 怎样做团购,做好社区团购的四大要点

    在马云提出的“新零售”概念里,线上线下的结合与现代物流都是不可或缺的要素。在经过新零售、智慧零售的迭代更新、无人货架的崛起与退场,并吸收了以拼多多为首的社交电商的社群流量优势后,社区团购在2018年下半年席卷全国,成为炙手可热的社区新零售风口。 社区团购的商业模式为:以社区为单位,由宝妈或店主成为团长,在线上借助微信群、小程序等组织社区居民拼团,线下完成交付。当日线上下单,次日社区内自提。由平台提…

    2022年6月9日
    1220
  • seo查询是什么,新手入门必须知道的两个关键

    一:什么是SEO SEO是由英文SearchEngineOptimization缩写而来,中文意译为“搜索引擎优化”,SEO是指通过对网站进行站内优化(网站结构调整、网站内容建设、网站代码优化等)和站外优化,从而提高网站的关键词排名以及公司产品、品牌的曝光度。 seo那些事 二:如何判断网站优化如何 1、网页中大量采用图片或者Flash等富媒体(RichMedia)形式,没有可以检索的文本信息,而…

    2022年10月4日
    410
  • win10安装linux有什么方法,win10安装linux子系统教程

    在Windows102004上,微软引入了适用于Linux2的Windows子系统(WSL2),这是一个新的架构版本,该架构允许在Windows10上运行Linux(使用轻量级虚拟机),它最终将取代WSL1。 在这个新版本中,它将运行一个真实的Linux内核,在保持与第一个版本相同体验的同时,它将比前一个版本提高性能和应用程序兼容性。 虽然适用于Linux2的Windows子系统预计将随Windo…

    2022年8月3日
    730
  • 灯塔笔记本为什么这么贵(贵有贵的道理这话一点都没错)

    一直都是在评测钢笔,其实我对钢笔/以及钢笔书写周边的产品都是不排斥的,只是一直没有找到特别让人上心的产品。 这次刚好有机会,咱们聊聊德国灯塔Leuchtturm1917的笔记本。 为啥?因为…咱们上心(上新)了… 很久很久之前,我用过moleskins的本子,当时这本子也是市场运作的神乎其神,明明是一个蛮新的笔记本品牌,硬是扯到当年梵高以及一众文化人都曾经用过的本子,偷换概念的甚为严重,再…

    2022年9月19日
    710
  • 婚纱摄影推广怎么做,婚纱摄影的营销策略

    七夕刚过去一周,作为婚纱摄影行业每年必争的营销旺季,七夕引爆了用户关注、订单流水、消费狂热,亦给商家抛出诸多烦恼: √本地大盘流量紧张,行业整体成本上涨,旺季预算趋高不下,效果却因人而异; √婚纱行业全国头部、本地头部品牌数量仅占1%,却以千万级消耗占据着大比例资源,99%的的本地中小婚纱品牌如何另辟蹊径? √产品相似度高、同质性严重,婚纱广告主的特色和优势如何凸显? 本次给大家分享的是南宁某婚纱…

    2022年6月21日
    610
  • 怎么做淘宝推广和宣传,最全的淘宝店铺推广技巧分享

    有些人以为做淘宝很简单,还很赚钱,头脑一热就冲进淘宝, 结果卖什么产品呢,服饰鞋帽,随便选一个。 怎么卖呢,上架宝贝坐等出单。 很多人都是抱着玩一玩的心态做的淘宝,然而大部分人都会被淘宝泼几盆凉水。 今时不同往日,淘宝现在已经是存量市场。 要在有限的市场内争夺流量、销量,确实需要一个系统性的运营思维。 新店前期要怎么运营,就要了解淘宝店铺的运营框架。 是先上架,还是先装修;是先搞什么标题优化,再去…

    2022年7月10日
    600
  • 手机被锁了怎么解锁,30秒一键清除锁屏密码

    所有设备:通过网络解锁 如果您仍然知道自己的模式(只有您的小弟弟使用您的设备),并准备好您的Google帐户登录名/密码,UltraTechy.Com还提供了另一种方法: 使用您的计算机,登录您的Google帐户 点击右上角的电子邮件,选择帐户设置,然后点击底部的“访问以前版本的Google帐户屏幕”,单击个人设置→安全性下的“授权应用程序和站点”。 在“已连接的网站,应用和服务”下-使用Andr…

    2022年9月7日
    1320
  • 雪肌精美白怎么样,揭秘雪肌精的美白原理

    提到日本高丝化妆品公司,相信爱美的美眉都不陌生。一直以来日本护肤品就以全能高效的美白效果在护肤领域占据着举足轻重的地位,而雪肌精乳液作为高丝化妆品公司旗下的经典产品,一直以超高的性价比赢得无数美誉和市场赞叹,成为美白界的宠儿。赶快跟小编一起来了解下它的神奇功效吧。 卓越美白保湿效果重现明亮肤色 一直以来改善晦暗肤色,使肌肤变得白嫩是雪肌精家族的强项。而雪肌精乳液更是采用五种和汉植物精华:旋覆花、牡…

    2022年10月12日
    380
  • 怎么迁移微信聊天记录,教你两招快速迁移到新手机

    谷歌的Android11(安卓11)已经开始小范围测试,安卓11中存储机制进行了非常大的更新,谷歌要求所有应用要符合安卓11的开发规范,其中就有要求应用的某些数据要存储于各应用私有目录,各大应用的开发商都在为此积极准备,前一段时间安卓手机QQ已经部分遵循此开发规范,将数据本地存储路径做了一些调整。 近日,安卓微信7.0.13.2版开启众测邀请,主要就是对本地文件存储路径做出调整,以适应安卓11的开…

    2022年7月26日
    560

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信