以下是代码:
@interface myClass {
std::vector<float> myVector
}
@end
根据仪器泄漏。这是堆栈跟踪:
1 libstdc++.6.dylib operator new(unsigned long)
2 __gnu_cxx::new_allocator<float>::allocate(unsigned long, void const*)
3 std::_Vector_base<float, std::allocator<float> >::_M_allocate(unsigned long)
我猜我应该在堆上分配向量,但我仍然不明白为什么会这样。我也有可能无法正确地解除课程。
答案 0 :(得分:4)
检查是否调用了类的dealloc。在这种情况下,它似乎是可以调用泄漏的一种方式。还有一个问题:为什么不使用原生Objective-c容器?您需要将您的浮动存储在NSNumbers中,但您将能够为所有实例使用标准的保留/释放内存管理模型。