new
我的问题是函数调用中使用运算符分配的对象会发生什么情况。
一个具体的例子:我有一个私有向量pV
,我想将它发送到类之外的对象/函数,foo->func(std::vector<int> *vec)
. 我第一次尝试写
foo->func( new std::vector<int>(pV) )
但这会导致内存泄漏(当在循环内重复调用所述函数时)。当我专门创建一个新对象,调用该函数然后删除该对象时,整个事情都正常工作,没有内存泄漏。
新创建的对象不应该在函数返回时“过期”并被删除吗?如果不是,我应该如何从被调用函数内部删除对象?哪种方法更好?