智能指针与动态内存

智能指针

个人理解,智能指针是用来管理动态内存的,动态内存也就是堆内存,程序用它来存储动态分配的对象,即程序在运行的时候分配的对象。

除了动态内存,还有静态内存栈内存,静态内存用来保存局部 static 对象,类 static 数据成员和定义在函数之外的变量;栈内存用来保存定义在函数内的非 static 对象。

静态内存和栈内存由编译器自动分配和释放,而动态内存由程序员手动分配和释放。例如:使用 new 可以在动态内存中为对象分配空间并返回指向该对象的指针,使用 delete 接受一个动态对象的指针,销毁该对象并释放动态内存。

动态内存的使用很容易出问题,因为确保在正确的时间释放内存是极其困难的。其中很容易出现两种问题:一种是忘记了释放内存,这是就会产生内存泄漏;另一种是还有指针在引用内存的时候释放了它,这时就会产生引用非法的指针

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值