C++ Malloc和new操作符分配内存的区别是什么?
可能重复:C++ Malloc和new操作符分配内存的区别是什么?,c++,visual-c++,C++,Visual C++,可能重复: 当我在C++中使用new运算符创建对象时,我感到困惑。malloc和new操作符之间必须有区别,允许我调整内存块的大小。如果我想分配一个内存,我使用malloc,但是如果我使用一个新的操作符呢 难道它不分配内存吗?你能解释一下我什么时候应该使用malloc,什么时候应该使用new吗 X* ptr = new(1,2) X; obj = (ObjID *)malloc( sizeof(ObjID) ); 非常感谢。new分配内存,并为正在分配的类型调用类构造函数。new不仅为对象
当我在C++中使用new运算符创建对象时,我感到困惑。malloc和new操作符之间必须有区别,允许我调整内存块的大小。如果我想分配一个内存,我使用malloc,但是如果我使用一个新的操作符呢 难道它不分配内存吗?你能解释一下我什么时候应该使用malloc,什么时候应该使用new吗
X* ptr = new(1,2) X;
obj = (ObjID *)malloc( sizeof(ObjID) );
非常感谢。
new
分配内存,并为正在分配的类型调用类构造函数。new
不仅为对象分配内存,还将为创建的对象调用构造函数<代码> MaloC/- 它调用对象的构造函数
- 因为它是一个操作符,所以可以重载它
- 它抛出异常,但有一个无异常的版本
- 有一个“placement new”,允许您将对象放入已分配的内存中