当前位置: 首页 > news >正文

六盘水做网站wordpress 搜索 分类

六盘水做网站,wordpress 搜索 分类,网站做seo推广,聚美优品网站建设项目规划书目录 一、内存分布 1.1内存分布图: 1.2 为什么要将bss和data区分开呢? 1.3 堆和栈有什么区别 二、malloc、free;new、delete 2.1 new和delete是如何实现的,new与malloc的异同处 2.2既然有了malloc/free,C为什么还…

目录

一、内存分布

1.1内存分布图:

 1.2 为什么要将bss和data区分开呢?

1.3 堆和栈有什么区别

 二、malloc、free;new、delete

2.1  new和delete是如何实现的,new与malloc的异同处

2.2既然有了malloc/free,C++为什么还需要new/delete


一、内存分布

1.1内存分布图:

 1.2 为什么要将bss和data区分开呢?

在程序编译的时候,不会给.bss段中的数据分配空间,只是记录数据所需空间的大小。在程序执行的时候,才会给.bss段中的数据分配内存。通过这种方式,可以节省一部分内存空间,进一步缩减可执行程序的大小。

1.3 堆和栈有什么区别

堆是由malloc和new动态开辟的一段内存,由程序员自己管理和释放。栈则是由编译器自己开辟和管理的内存,一般用来存放函数的传参和局部变量。

空间由于频繁开辟和释放,所以会产生内存碎片的问题。

堆的生长空间向上,地址越来越大,栈则是向下,地址越来越小。栈的空间很小只有8M,而堆有4G。

 二、malloc、free;new、delete

2.1  new和delete是如何实现的,new与malloc的异同处

new和delete是对malloc和free的封装,new一个对象时,会首先调用malloc分配空间,然后执行对象的构造函数初始化这块空间,delete则会先调用对象的析构函数,然后调用free释放这块空间。

他们最大的区别则是 1、new会调用构造函数初始化空间。2、new并不需要指定资源的大小。3、new的返回值是对象类型的指针,而malloc则是void * 的指针。4、new如果调用失败,则会抛异常,而malloc调用失败则会返回NULL。5、new是一个操作符,malloc则是函数,operator new可以被重载。

2.2既然有了malloc/free,C++为什么还需要new/delete

这四个函数都是用来申请和释放内存。new/delete主要是对malloc/free进行了封装,使其能更好地申请和释放C++的对象资源,否则就得malloc一块空间,然后手动调用构造函数。

而malloc/free是已经编译好的库函数,其还要兼容C语言,不能够轻易修改,所以将其封装起来实现了new/delete。

http://www.yayakq.cn/news/313538/

相关文章:

  • 深圳坪山很偏僻吗整站优化加盟
  • 网站创建方案论文手机网站建设多钱
  • 园林景观设计效果图数字营销seo
  • 深圳市住房和建设局网站住房网站开发客户阿里云案例
  • 中山市网站建站公司微信小程序制作软件下载
  • 金属网站模板要想做一个好网站需要多久
  • 怎么做网站信息企业网站建设教程
  • 天猫网站建设分析怎样理解网站建设与开发这门课
  • 莆田网站建设咨询建设网站的颜色
  • php做的网站模版金坛网页设计
  • 电商网站改版思路wordpress 卸载
  • 阜新网站制作社区论坛源码
  • 哪些网站可以免费google网站管理员中心
  • 网站页脚需要放什么用网络黄页进入有限公司
  • 长春火车站到吉大一院提高工作效率心得体会
  • 下载官方网站app网站开发书籍下载
  • 金蝶软件中国有限公司网络优化app
  • wordpress 摘要省略号北京网站优化价格
  • 青海公司网站建设成华区微信网站建设公
  • 青岛做网站seo网页模板免费资源
  • wordpress网站移植医院网站HTML5
  • 抚顺做网站安徽省美好乡村建设网站
  • 做网站销售挣钱吗网上申报食品经营许可证流程
  • 做网站备案是承诺书在哪下载什么二手车网站做最好
  • 设计制作个人网站云南省建设厅专家注册网站
  • 广州网站建设咨询电话太和网站建设
  • 在百度做推广送网站好吗搜素引擎排名优化计费方式
  • 花木网站模版二维码生成器在线制作方法
  • 小米路由器做网站服务器吗一级做ae视频片段怎么做
  • 网站多服务器建设藁城住房和城乡建设局网站