我遇到了一些错误,这些错误以某种方式释放了对象,但最终我们在它们上调用了FreeMem。当然,这会导致错误,因为内存已被释放并引发错误。

我知道一个try-catch块可能会解决它,但这是很多try-catch块。使用常规的object.free可以避免这种情况的方法是FreeAndNil(object),但我找不到FreeMem的等效方法。在释放之前测试它是否已分配的东西。

在易于阅读,可维护性和稳定性方面,最好的解决方案是什么。

最佳答案

相当于FreeAndNil将是

FreeMem(p);
p := nil;


但是您最好通过释放对象后使用哪个对象来解决实际问题。尝试使用FastMM-它会帮助您完成该任务。

07-24 16:50