placement new理解

本文深入探讨C++内存管理机制,重点讲解placement new特性的使用场景及安全性考量,阐述其在对象池管理中的优势,避免资源浪费,提高程序效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为项目需要所以向几位腾讯的Cpp大佬请教了一下!
同时我也整理总结了C++内存管理的几种情况C++ 内存管理-- new, delete,new[],placement new 总结
placement new允许我们将object创建与 已经申请好的内存中,但是没有所谓的 placenment delete。
这句话的意识:
就是你可以用已经申请的内存来申请对象,但是不建议delete,比如你有一个class a,然后我做一个应用池,里面申请了50个class a大小的内存p,每次我想生成一个新的对象就可以从应用池里面直接生成
!(就是你拿这片内存来管理对象)
placement new怎么样判断有没有数据?这样安全?不会吧有数据的内存块覆盖?
为了确保不知道在什么地方调用了出问题,这个要靠自己维护,一般这个就是自己用来做应用池的时候用到。
又为什么不能delet?不然要怎么样释放?
可以delete,只是为了防止小白乱delete,就是说要封装,不要随便delete,不让一边还在用,另一边就delete了

比如,你想先动态申请100个对象的连续空间,而你事先没有100个对象,那么,你可以先申请空间,然后有新对象的时候,用placement new在已经申请的内存空间上构造。
结合底下的 :应用池来理解placement new

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值