99问答网
所有问题
C语言中的malloc和C++中new的区别
如题所述
举报该问题
推荐答案 2019-07-24
new是C++的运算符
malloc是C的函数。
所以从效率上来说
new的效率更高。
另外,
在对象操作上,new会调用构造函数,而malloc只是单纯分配内存。
所以
在C++对象申请中,必须用new而不是malloc
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/jv7WzzeOXjBBBeO7Wj.html
其他回答
第1个回答 2020-04-10
malloc是只分配空间,返回void类型的地址。
用new的话,包含malloc的功能,而且会调用类的构造函数。。。
相似回答
C++中new
出得对象
与C中的malloc
出得
有什么
联系和
区别
?
答:
1、new 是c++中的操作符,malloc是c 中的一个函数
2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数 3、
内存泄漏
对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那...
C++中
,
new
/delete和
malloc
/free
的区别
答:
1、new/delete是C++的操作符,而malloc/free是C中的函数。2、new做两件事,一是分配内存,二是调用类的构造函数
;同样,delete会调用类的析构函数和释放内存。而malloc和free只是分配和释放内存。3、new建立的是一个对象,而malloc分配的是一块内存;new建立的对象可以用成员函数访问,不要直接访问它...
C++中
,
new
/delete和
malloc
/free
的区别
答:
new 和delete的底层就是malloc 和free,
malloc可以用于分配指定字节大小的内存,而new是针对实例化对象,使用的,对内置类型变量无法使用new
,delete是也是针对动态创建的对象而言的。
C++中 申请一定空间
为什么
new
比
malloc
好呢?
答:
如果单纯的申请内置类型的空间的话,两个是没有什么区别的,
就是用 new比较方便
。但是如果要申请类类型的空间的话,用malloc就不行。因为在申请的时候类需要初始化成员,在用malloc的时候,不会调用类的构造函数 而用new则可以调用类的构造函数来初始化类成员。如果用malloc来申请类类型的空间编译器会...
在
C语言中malloc
,free,
new
,del,?
答:
1,malloc与free是C++/C语言的标准库函数,
new/delete是C++的运算符
。
它们都可用于申请动态内存和释放内存
。2, 对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在...
malloc函数
的
与new的区别
答:
new
不依赖于头文件,
c++
编译器就可以把new编译成目标代码(g++4.6.3会向目标中插入_Znwm这个函数,另外,编译器还会根据参数的类型,插入相应的构造函数)。在使用上,
malloc 和
new 至少有两个
不同
: new 返回指定类型的指针,并且可以自动计算所需要大小。比如: int *p;p = new int;//返回类型...
C语言中的malloc
()函数
答:
void *malloc(int size);说明:malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,
C++
规定,void* 类型可以强制转换为任何其它类型的指针。从函数声明上可以看出。
malloc 和
new
至少有两个
不同
: new 返回指定类型的指针,并且可以自动计算所需要...
c++中
有
malloc
/free 为什么还要
new
/delete
答:
区别:1.
new
/delete是
C++
里才有的,而new/delete
与malloc
/free一个显著
的区别
在于,new是建造一个对象,并调用对象的构造函数来初始化对象,其实在所有的new操作过程中,总是分为两步的:第一步是申请内存,第二步则是调用构造函数初始化对象。同样,在调用delete的时候,需要先调用析构函数,然后在...
C语言
:都是动态分配内存,
malloc和new有什么区别
?malloc分配的内存是...
答:
malloc是
C语言的
分配内存接口,new操作会在分配内存的情况下再调用构造函数对内存块进行初始化,
malloc和new
都是从堆中分配内存,所以都不能保证分配的内存是连续的。
大家正在搜
const和define的区别
new和malloc的使用
static和const的区别
class和struct的区别
strcpy与memcpy的区别
c语言实现malloc
c语言fopen函数的用法
malloc与new
malloc实现new