关于指针+非指针的c++内存问题

标签 c++ pointers memory

假设我声明了一个变量

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消耗的内存会自动释放吗?

编辑:免费 --> 删除

最佳答案

  1. 是的, vector 类可能会自动分配比需要的空间更大的空间,以防您以后要在其中存储更多数据,因此它可能不会在每次您push_back() 时都分配新空间>.
  2. 是的,但是您应该使用 delete interList; 而不是 free()

关于关于指针+非指针的c++内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15963229/

相关文章:

c++ - 带有 xcode 错误 : Undefined symbols for architecture x86_64: 的 OpenCV

c++ - (部分)特化依赖类型的非类型模板参数

C 代码、指针及其内容。考试题

c++ - Delphi CopyMemory vs C++ memcpy

javascript - 如果移除了一个 DOM 元素,它的监听器是否也会从内存中移除?

c++ - 帮助修复内存泄漏

c++ - 跟踪这个递归代码

c++ - 为什么 char* 和 int* 表现不同

使用 ARM 编译器时的 C 死代码检测

c# - 使用整数索引进行数组表查找的最快方法是什么?