C语言的动态分配内存函数相比,C++的new 和delete运算符有什么相同点和区别呢?
发布网友
发布时间:2022-04-23 03:48
我来回答
共3个回答
热心网友
时间:2023-10-13 19:41
相同点:都会分配内存
不同点:
(1)如果
构造函数
和
析构函数
,则new和delete会分别调用构造函数和析构函数,malloc和free则不会
(2)malloc和free是函数,而new和delete是运算符
热心网友
时间:2023-10-13 19:41
new
是个操作符,和什么"+","-","="...有一样的地位.
malloc是个分配内存的函数,供你调用的.
new是保留字,不需要头文件支持.
malloc需要头文件库函数支持.
new
建立的是一个对象,
malloc分配的是一块内存.
new建立的对象你可以把它当成一个普通的对象,用成员函数访问,不要直接访问它的地址空间
malloc分配的是一块内存区域,就用指针访问好了,而且还可以在里面移动指针.
总的来说问new和malloc有什么区别,就好像问"飞机和汽车有什么分别"
----除了都是交通工具,其他的特征全是分别...
热心网友
时间:2023-10-13 19:42
1.
new
可以用来申请
非基础类型的数据内存,
比如,我有struct
sTemp{
int
a;
int
b};
我可以,sTemp*
pNew
=
new
sTemp;
但malloc不行;
2
.
new
/
delete
是运算符,而malloc/free是函数
这两点区别本质上是一点。