gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 00:31:06 24 4
gpt4 key购买 nike

我想知道我是否有一个类“Object”,然后我想制作一个 ObjectList - Object** p_obj。那么我可以为 p_obj malloc/free 和为 p_obj[i] 新建/删除吗?

类似于:

    p_obj = (Object**) malloc(sizeof(Object*) * count_obj)
p_obj[0] = new Object();

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

提前致谢。

最佳答案

虽然从技术上讲这不是“错误”,但它肯定违背了 C++ 范式。

您最终会遇到的最大问题是您会给自己和任何其他必须维护代码的人带来困惑。

作为一般规则,在 C++ 中使用 new/delete 而不是 malloc/free。为了加分,请使用智能指针,不要直接处理对象分配或取消分配。

关于c++ - 双指针可以同时使用 malloc/free 和 new/delete 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34937071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com