在“Inside the C++ Object Model”一书的 6.3 节中,临时对象(第 230 页):
实际结果取决于实现,具体取决于底层删除运算符在实际释放已寻址内存方面的积极程度。一些实现,虽然将内存标记为空闲,但实际上并没有以任何方式改变它。在内存被其他东西占用之前,它可以像没有被删除一样使用。虽然显然不是软件工程的典型方法,但这种在内存释放后访问内存的习惯用法并不少见。 事实上,许多 的实现都提供了一个特殊的调用来保证这种行为。
malloc()
malloc(0);
根据上述,malloc(0)
似乎与访问已经被释放的内存(但其内容没有改变)有关。
我的问题是如何malloc(0)
保证这种行为?