delete
和 free
何时可以在 C++ 中互换使用?
我的担忧如下:假设在使用 malloc
/free
时存在不正确的混淆,并且
new
/delete
(更不用说new[]
/delete[]
)。但是 delete
和 free
做同样的事情;
幸运的是,这在测试中没有被发现。稍后这可能会导致生产崩溃。
我怎样才能强制执行某种检查来防止这种情况发生?如果两者混淆,我可以得到警告吗? 如果不是在编译时,也许是在运行时进行一些代码检测?我将如何接近 这个?
这个问题的目的是找到方法来避免在用法中无意中混淆。
最佳答案
不混淆它们的简单方法是永远不要使用 malloc(),这样您就永远不会想调用 free()。为避免此问题而创建的基础架构称为“代码审查”,但在这种情况下,代码库上的快速“grep malloc(”或“grep free(”可能就足够了。
关于c++ - 如何防止在 C++ 中无意中互换使用 delete 和 free?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1166507/