双指针可以同时使用malloc/free和new/delete吗?

mil*_*now 2 c++

我想知道我是否有一个类"对象",然后我想创建一个ObjectList - Object**p_obj.然后我可以malloc/free for p_obj和new/delete for p_obj [i]?

就像是:

    p_obj = (Object**) malloc(sizeof(Object*) * count_obj)
    p_obj[0] = new Object();
Run Code Online (Sandbox Code Playgroud)

并使用delete和free在析构函数中释放它们; 如果可以,那么它可能造成哪些潜在问题?

提前致谢.

Col*_*ett 5

虽然这在技术上并非"错误",但它肯定违背了C++范式.

您最终遇到的最大问题是您自己和其他任何必须维护代码的人会产生的混淆.

作为一般规则,在C++中使用new/ delete而不是malloc/ free.对于奖励积分,使用智能指针,从不直接处理对象分配或取消分配.