C ++中的“new”和“malloc”和“calloc”有什么区别?
“新”,“malloc”和“calloc”等家族的区别是什么?
(什么时候)我需要“新”以外的任何东西吗?
其中之一是否使用其他方法实施?
new
和delete
是C ++特有的功能。 他们在C中不存在malloc
是老派C做事的方式。 大多数时候,你不需要在C ++中使用它。
malloc
分配未初始化的内存。 分配的内存必须free
发布。 calloc
就像malloc
但用一个常量(0)初始化分配的内存。 它需要free
释放。 new
通过调用构造函数初始化分配的内存(如果它是一个对象)。 分配new
内存的内存应该使用delete
来释放(然后调用析构函数)。 它不需要您手动指定所需的大小并将其转换为适当的类型。 因此,它更现代化,不易出错。 新建/删除+新建[] /删除[]:
malloc / free +系列:
另请参阅我的相关答案
正如其他文章指出的:malloc / free是C ++的一部分,与C兼容。
另请参阅:Stroustrup:new vs malloc
链接地址: http://www.djcxy.com/p/78535.html上一篇: What is the difference between "new" and "malloc" and "calloc" in C++?