谁能指教一下,什么时候用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是也是针对动态创建的对象而言的。
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)