0

这是代码:

@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)

我猜我应该在堆上分配向量,但我仍然不明白为什么会发生这种情况。也有可能我没有正确地释放类。

4

1 回答 1

4

检查是否调用了您班级的 dealloc。在这种情况下,这似乎是一种可以调用泄漏的方法。只有一个问题:为什么不使用本机 Objective-C 容器?您需要将浮点数存储在 NSNumbers 中,但您将能够为所有实例使用标准的保留/释放内存管理模型。

于 2012-06-03T09:40:19.170 回答