Leo*_*eon 2 c++ memory-management new-operator
我知道free()不会调用析构函数,但除了成员变量不会被正确破坏之外还会引起什么?
另外,如果我们delete指定的指针是malloc什么?
Pra*_*rav 11
它的实现定义是否在引擎盖下new使用malloc.混合new使用free,并malloc与delete 可能导致运行时灾难性的失败,如果代码被移植到一台新机器,新的编译器,或者相同的编译器,甚至一个新的版本.
我知道free()不会调用析构函数
这就是不足以做到这一点的理由.
此外,没有要求C++实现甚至使用相同的内存区域malloc,new因此可能是你试图从完全不同的竞技场释放内存,这几乎肯定是致命的.