谁能指教一下,什么时候用new什么时候用malloc丫,新号,分都花完了,不好依稀!
C语言的话,都是用Malloc的,如果是C++,目前都是用New比较多了。
两者的区别:
1、new 是c++中的操作符,malloc是c 中的一个函数
2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数
3、内存泄漏对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那一行,而malloc没有这些信息。
4、new 和 malloc效率比较
new 有三个字母, malloc有六个字母
new可以认为是malloc加构造函数的执行。
new出来的指针是直接带类型信息的。
而malloc返回的都是void指针。
C++中,new/delete和malloc/free的区别
面试比较常问的问题,malloc是标准的库函数,new是C++的运算符。它们都可用于申请动态内存。用new的时候会自动的构造函数。 对于非内部数据类型的对象而言,光用maloc无法满足动态对象的要求。对象在创建的同时要自动执行构造函数。
new
和delete的底层就是malloc
和free,malloc可以用于分配指定字节大小的内存,而new是针对实例化对象,使用的,对内置类型变量无法使用new,delete是也是针对动态创建的对象而言的。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!