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

辽宁省住房和城乡建设厅网站沈阳网站建设制作公司

辽宁省住房和城乡建设厅网站,沈阳网站建设制作公司,做威客有什么靠谱网站,做装饰工程的在什么网站投标文章目录程序区域内存划分C语言动态内存分配:new和delete:new、delete和malloc、free的区别:程序区域内存划分 C/C程序内存区域划分非常相似。 C语言动态内存分配: malloc、calloc、realloc都是C语言动态开辟内存的常用函数 其中 malloc 开…

文章目录

  • 程序区域内存划分
  • C语言动态内存分配:
  • new和delete:
  • new、delete和malloc、free的区别:

程序区域内存划分

C/C++程序内存区域划分非常相似。
在这里插入图片描述


C语言动态内存分配:

malloc、calloc、realloc都是C语言动态开辟内存的常用函数
其中 malloc 开辟一块空间,不会对这块空间进行初始化,而calloc会初始化这块空间为0,realloc则在需要扩充空间时使用。


operator new和operator delete:
new和delete是用户进行动态内存申请和释放的操作符,operator new 和operator delete是系统提供的全局函数,new在底层调用operator new全局函数来申请空间,delete在底层通过operator delete全局函数来释放空间。

而operator new 和 operator delete 底层依然是调用malloc和free实现的。


new和delete:

对于内置类型
new和malloc,delete和free基本类似,不同的地方是:
new/delete申请和释放的是单个元素的空间,new[]和delete[]申请的是连续空间,而且new在申请空间失败时会抛异常,malloc会返回NULL。

除此之外new可以在申请空间后赋值。

int* p1 = new int;
int* p2 = new int(2);//赋值
int* p3 = new int[3];
int* p4 = new int[3]{1,2,3};//赋值

对于自定义类型

  • new
    1、先调用operator new申请一块空间
    2、调用构造函数初始化
  • delete
    1、先调用析构函数完成对象内空间释放
    2、调用operator delete删除对象
  • new[]
    1、先调用operator new[] 实际调用operator new完成N次对象空间的申请
    2、调用N次构造函数初始化
  • delete[]
    1、先调用N次析构函数完成对象内空间释放,完成对象空间内资源的释放
    2、调用operator delete[]实际上调用operator delete删除N个对象

定位new表达式:

格式:new (指针) type(初始化列表)
type指对象的类型

定位new表达式在实际中一般是配合内存池使用。因为内存池分配出的内存没有初始化,所以如果是自定义类型的对象,需要使用new的定义表达式进行显示调构造函数进行初始化。

int main()
{A* p1 = (A*)malloc(sizeof(A));new(p1)A(1);// 注意:如果A类的构造函数有参数时,此处需要传参p1->~A();free(p1);
}

new、delete和malloc、free的区别:

1、new能初始化,malloc不行
2、new/delete是操作符,而malloc/free是函数
3、new申请空间不需要计算大小,malloc需要手动计算
4、new后跟空间类型,不需要强制类型转换,malloc需要
5、new失败后需要捕获异常,malloc失败返回NULL
6、new/delete会调用构造函数/析构函数完成初始化/对象空间资源清理,而malloc不会。

http://www.ds6.com.cn/news/118285.html

相关文章:

  • 东莞php网站建设价格b站大全永不收费2023入口在哪
  • 做网站的公司msgg提高百度搜索排名工具
  • 怎么做国内网站吗企业推广方案
  • wordpress激活主题windows优化大师卸载不了
  • 网站关于我们示例香港seo公司
  • 网站ico制作哪些平台可以免费打广告
  • 长沙装修公司排行榜百度免费seo
  • 网站关键词上首页网址域名注册信息查询
  • 微信公众网站怎么做的外包接单平台
  • 如何用微信支付购物网站交换链接平台
  • 向总部建设网站申请书推广哪个平台好
  • 南康建设局官方网站汕头seo网站推广
  • 聊城网站开发培训刷粉网站推广马上刷
  • 网站用哪些系统做的比较好百度搜索排名怎么收费
  • 成功案例 品牌网站2022百度指数排名
  • 同城换物网站为什么做不起来台州关键词优化推荐
  • 功能型网站开发价格海淀区seo引擎优化
  • 有源码怎么做网站高级seo
  • 做3d办公家具教程的网站搜索引擎推广试题
  • 外贸精品网站建设seo关键词排名技巧
  • 偃师制作网站智慧软文发稿平台
  • dede多个网站怎么做最有效的推广学校的方式
  • 沈阳网站制作培训百度引擎搜索
  • 网站记录ip 修改seo外包优化
  • 女性网站流量排名seo关键词推广价格
  • 金融投资网站模板凡科建站
  • 济南怎样做网站推广常州seo
  • php英文商城网站建设网络广告图片
  • 一个空间做两个网站平台seo
  • 摩洛哥vs葡萄牙直播网站优化外包公司