【发布时间】:2015-03-13 20:14:05
【问题描述】:
我需要我的向量容器在分配它的函数结束后持续存在。
void initVector() {
vector<obj1*> R;
}
为什么这无效?
void initVector() {
vector<obj1*> R = new vector<obj1*>;
}
【问题讨论】:
-
能不能不退货?
-
为什么需要这样做?您打算如何防止内存泄漏?
-
你不能只传递一个空向量作为参考,然后在函数中做你需要做的事情吗?
-
好问题,但我同意@juanchopanza。但是,如果您必须这样做,它是无效的,因为
new返回分配内存的句柄。要使其有效,您需要做的就是使R成为std::vector<obj>类型的指针。就像每个人都说的那样,如果您确实调用new,请确保没有内存泄漏,请确保正确调用delete。