Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
std::vector<int*> * vec=new std::vector<int*>(); int* p=new int(); int* q=new int(); vec.push_back(p); vec.push_back(q); . . . vec.clear();
我的问题是内存会被释放吗???
保存指针的内存,是的。存放指针内容的内存,没有。delete vec;此外,您应该通过在程序末尾编写来释放向量本身,但我想这不是您所要求的。
delete vec;
delete不,当你使用new(而不是使用智能指针)时,你应该使用, 。对于向量的元素 - 不,内存不会被释放,您应该delete在向量中的每个元素上使用。就像是
delete
new
std::for_each(vec.begin(), vec.end(), [](const int* p) { delete p; });