c++ new delete 详解

本文详细介绍了 C++ 中动态内存管理的关键字 new 和 delete。new 不仅分配内存,还会调用构造函数;delete 在销毁对象后释放内存。此外,还提到了 operator new 和 placement new 的区别与使用场景,以及对内存管理的理解,包括堆和栈的区别以及如何避免内存泄漏。
摘要由CSDN通过智能技术生成
详解
  • c语言中使用malloc/calloc/realloc/free进行动态内存分配,malloc/calloc/realloc用来在堆上分配空间,free将申请的空间释放掉。

这里要注意的一点是,为什么分配了空间之后,必须要用户手动去free掉呢,是因为malloc、calloc、realloc都是在堆上分配的,堆上分配的空间必须由用户自己来管理,如果不释放,就会造成内存泄漏。而栈上分配的空间是由编译器来管理的,具有函数作用域,出了函数作用域后系统会自动回收,不由用户管理,所以不用用户显式释放空间。

  • c++中是通过new和delete操作符进行动态内存管理的。

  • 对指向不使用 new 分配的指针使用 delete 将产生不可预知的结果。 但是,可以对值为 0 的指针使用 delete。 此设置意味着,当 new 失败并返回 0 时,删除已失败 new 操作的结果不会造成损害

  • delete 运算符的结果类型为 void,因此它不返回值
  • new和delete既是C++中的关键字也是一种特殊的运算符
void* operator new(size_t size);
 void* operator 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值