【C++】在C++中,对一个对象先malloc后delete这样使用可以吗?有什么风险(约195字)

不可以

风险如下:

  1. 构造函数未被调用:使用 malloc 分配内存时,对象的构造函数不会被执行,导致对象可能处于未初始化的状态。
  2. 析构函数问题:如果你使用 malloc 分配而后使用 delete 释放内存,会尝试调用对象的析构函数,但因为构造函数从未被调用过,这可能导致未定义行为,比如资源泄露、崩溃或数据损坏等问题。
  3. 兼容性问题:mallocdelete 内部实现可能有差异,混用可能导致堆损坏。
  4. 异常安全性:由于 mallocdelete 的异常处理机制不同(new 可以抛出异常,而 malloc 返回NULL),这会进一步使得代码难以维护,并可能导致错误处理不当。

THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容