贡献者: addis
malloc(), free() 和 new, delete 不可以混用否则会出现未定义错误。后者最大的区别就是会调用 constructor/destructor.
MyClass* p = new MyClass[10]; 和 MyClass* arr = new MyClass[10]; 会调用默认 constructor
delete p; 和 delete arr[]; 会调用 destructor。
new MyClass[10]{arg1, arg2}; 可以统一指定每个对象的 constructor 参数(不可以用圆括号只能花括号)。
new MyClass[2]{ {arg1, arg2}, {arg3, arg4} }; 可以对每个元素指定不同的构建入参。