是不是new运算一定要用delete,而delete删除的指针不一定是new运算申请的?

 我来答
A九尾妖姬
高粉答主

推荐于2019-10-13 · 每个回答都超有意思的
知道小有建树答主
回答量:207
采纳率:100%
帮助的人:7.1万
展开全部

1)new 和 delete 必须成对出现;

2)new 底层调用操作系统堆内存管理函数HeapAlloc来分配堆内存;

3)delete 操作符底层调用API接口函数HeapFree来释放堆内存;

可以在VC++6.0下调试,通过调用栈来分析new,delete操作涉及的与操作系统的交互过程。

1。静态区: 全局变量。

2。堆: 程序执行是分配的内存

3。栈: 函数调用,局部变量。

new出来的内存就是分配到堆上的。程序执行完以后,堆上分配的内存不会被操作系统自动回收,所以你不delete掉的话,操作系统不回收,那块内存就成了没爹没娘的无业有民了,这个就叫内存泄露。

静态区和栈上面分配的内存操作系统会自动回收。所以不用delete了。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式