【发布时间】:2009-09-25 04:32:54
【问题描述】:
我有一个 C++ 类,我在我的 iPhone 应用程序中的 Objective-C++ 控制器中使用它。 C++ 类对一些数据进行一些计算,返回一个结果,然后就完成了——但它像疯了一样泄漏。我想知道我是否可以以某种方式利用内存区域(又名 malloc 区域,又名 allocWithZone)来解决这个问题。我的想法是在一个新区域中分配 ObjC++ 对象,然后以某种方式在这个新区域中自动创建所有 C++ 对象。然后,当它返回时,我将区域杀掉,所有的内存都会自动恢复,即使它已经泄漏了。
但是:文档似乎表明如果我在新区域 X 中分配一个对象,它分配的对象将不会自动也位于区域 X 中。如果这是有道理的,有谁知道如何覆盖该行为,以便该对象的所有后续分配和分配都将在新区域 X 中?
编辑:
-
1234563到处都是(需要重构......)。感谢“只是修复你的泄漏”的建议,但目前这并不实用。
内存没有通过 ObjC 分配泄漏,而是主要通过 C++ 数组新调用(还有几个直接 malloc)。如果这有什么不同的话。
【问题讨论】:
-
是的,伙计们,我知道无内存泄漏的代码更好。
标签: iphone memory-management memory-leaks malloc