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