假设我声明了一个变量
vector<int>* interList = new vector<int>();
interList->push_back(1);
interList->push_back(2);
interList->push_back(3);
interList->push_back(4);
第一个问题是当我push_back一个int时,会消耗一 block 内存空间吗?
第二个问题如果我(删除interList),1,2,3,4消耗的内存会自动释放吗?
编辑:免费 --> 删除
最佳答案
- 是的, vector 类可能会自动分配比需要的空间更大的空间,以防您以后要在其中存储更多数据,因此它可能不会在每次您
push_back()
时都分配新空间>. - 是的,但是您应该使用
delete interList;
而不是free()
。
关于关于指针+非指针的c++内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15963229/