1、new delete 操作符号 是c++关键字
2、malloc free 函数 c语言
3、new和malloc都是在堆上分配内存
//分配基础类型
int *p=(int *)malloc(sizeof(int));
free(p);
int *d=new int;//同上,从这里可以看出malloc需要计算出字节个数,而new不用计算。
delete d;
int * d2=new int(10);//分配内存同时初始化。
delete p2;
//分配数组类型
int * p2=(int *)malloc(10*sizeof(int));
free(p2);
int * p3=new int[10];
delete [] p3;
//分配对象
//由以上可以看出malloc和free配合使用,new和delete配合使用,那么他们能否混合使用呢?
//malloc--delete new---free
//在基础类型以及数组类型中都一样,可以混合使用。但是,在对象中不可以,因为malloc不会调用构造函数,而new会调用构造函数。
//其次delete会调用析构函数,free不会调用析构函数
本文详细对比了C++中的new/delete操作符与C语言中的malloc/free函数在内存分配和释放上的区别,特别是在堆上分配内存的过程。通过具体代码示例,展示了两者在基础类型、数组类型以及对象类型内存管理上的不同特性。
965

被折叠的 条评论
为什么被折叠?



