C++新经典 | C++ 查漏补缺(内存)

本文详细探讨了C++中的内存管理,包括new和delete的使用细节,new与malloc、delete与free的区别,以及如何重载operator new和operator delete操作符。同时,文章还介绍了内存池的概念和实现原理,以及定位new的用途和用法,旨在帮助开发者更好地理解和掌握C++的内存管理机制。

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

目录

 一、new和delete

1.new类对象时,括号问题

2.new做了什么事

3.delete做了什么事

4.new与malloc的区别

5.delete与free的区别

二、分配及释放内存

三、重载operator new和operator delete操作符

1.重载类中的operator new和operator delete操作符

(1)为数组分配内存

2.重载全局operator new和operator delete操作符

四、内存池

1.内存池要解决的主要问题是什么?

2.内存池的实现原理是什么呢?

五、定位new


一、new和delete

        一般来讲,写C++程序,多数情况下还是提倡使用new和delete,不提倡使用malloc和free(这是C编程风格中才使用的)。

1.new类对象时,括号问题

(1)如果是一个空类,加不加括号没什么区别。

(2)类中如果有成员变量,带括号这种初始化对象的方式会把一些和成员变量有关的内存内容设置为0(内存中显示的内容是0)。

(3)如果类中有构造函数,main中的这两行代码执行的结果又变得相同了,如果构造函数中没有给age初始化,那么最终age的值没有被初始化为0,而是一个随机的值。

class TestMemory {
public:
    int age;
};

void main()
{
    TestMemory 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烫青菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值