c++中new/delete与malloc/free的区别与联系

来源:互联网 发布:excel如何导入外部数据 编辑:程序博客网 时间:2024/04/30 14:03

联系:

1.返回的都是指向某一空间的指针。

2.都是在堆上分配空间。

区别:

1.new会构造对象并调用构造函数初始化对象,而malloc只是分配一段空间。

2.delete会调用析构函数释放对象,而free仅仅只是释放一段空间。

总结:

new/delete、malloc/free不要混用。且调用new和new[] 也要相应的调用 delete与delete[]。

delete默认是释放一个空间,delete[]是默认释放一段空间,若用错了,会导致内存泄漏。(对于自定义类型而言)

原创粉丝点击