永发信息网

用new 申请内存之后,用delete释放内存

答案:2  悬赏:20  手机版
解决时间 2021-07-18 09:18
  • 提问者网友:饥饿走向夜
  • 2021-07-18 03:03
还有一个malloc 与free 它们有什么区别呀,用哪个比较好?能混着用吗?例如用new 申请内存之后,用free释放内存,这样可以吗?
最佳答案
  • 五星知识达人网友:掌灯师
  • 2021-07-18 04:01
不能混用
new除了分配内存,还会调用对象的构造函数
同样delete出了释放分配的内存,还会在释放前调用对象的析构函数

这两个调用动作malloc和free都没有,如果你类里还有其他需要在构造函数里new出来或者需要在析构函数里delete的资源,用malloc而不是new就会造成对象构造失败,用free而不是delete就会造成内存泄露。
全部回答
  • 1楼网友:人類模型
  • 2021-07-18 05:37
都是在堆上进行内存分配的 区别是new跟delete会调用对象的构造函数 而malloc 跟free不会 混着用是可以的 但是最好还是不要这样干
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯