lal*_*rde 4 c++ malloc free new-operator delete-operator
还有的malloc /自由和新的一个很好的比较/删除这里,好解释如何malloc()和free()的工作在这里.显然,我们不会混用它们 - 免费使用new或使用malloc删除.
我们可以看到许多开源项目,有许多贡献者,使用这两种机制,同时尊重上述"无混合"规则.通常,在一个文件中只有一种方式(一个作者,一个偏好).我已经分叉了这样一个项目,我正在使用new/delete添加一些功能.但我遇到了一些奇怪的记忆腐败.当然,我可能对他们负责,但.....
这让我想问一些"天真"的问题:
我可以在同一个编译单元(*.o)中同时使用malloc/free和new/delete机制 - 当然,尊重"无混合"规则?
我可以交错两种机制,就像在这段代码中一样吗?
int *a = (int *) malloc (1000 * sizeof int);
int *b = new int[1000];
// some code
free a;
delete[] b;
Run Code Online (Sandbox Code Playgroud)