区别:
malloc/free 与 new/delete的区别
new:只会调用一次构造函数,new申请的空间是单个类型的对象
new[]:申请的是一段连续的空间,会多次调用构造函数。

申请空间的方式必须与释放的方式成对使用:
malloc/free 与 new/delete的区别
new:(底层是对malloc函数的封装)

  1. 申请空间----->(底层) void operator new(size 字节数)
    循环调用malloc(size)申请空间
    malloc/free 与 new/delete的区别

  2. 调用构造函数
    在申请的空间中调用构造函数

delete:(对free函数进行封装)

  1. 先调用析构函数
    释放对象中的资源
  2. 释放空间 ---->(底层) void operator delete(void *p)
    循环使用free函数,对资源进行释放。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-06
  • 2021-07-08
  • 2022-12-23
  • 2021-06-11
  • 2021-10-19
相关资源
相似解决方案