基元的解分配向量
Deallocating vector of primitives
我正在挖掘一些古老的代码,这些代码最初是在 Builder 6 C++中构建的。贯穿整个代码库的是以下模式,恕我直言,它应该出现段错误:
vector<int> x;
try {
... some run of the mill vector manipulation
} __finally {
delete &x;
}
delete &x;
真的很奇怪。据我了解,vector<int>
仅在其中包含的函数的生命周期内存在,因此无需对其调用delete
。
这种模式背后是否有一些合理的动机,或者它只是完全错误?
这
当然不是标准的C++。
仅当使用new
时,才应使用delete
。否则,行为是未定义的。
至少正如你在这里展示的那样,这是完全错误的。
相关文章:
- 存储在堆分配向量中的指针的免费存储
- 重新分配向量时,向量中的内存会发生什么情况
- 是否可以在堆中分配向量,但通过引用进行访问
- 如何在以下程序中分配向量
- 通过引用分配向量
- 分配向量而不复制它们
- 是否可以动态分配向量?
- 为什么从工厂函数分配向量并在循环中迭代它会导致段错误
- 如何正确分配C 向量
- 如何在C++中使用"new"动态分配向量数组?
- 如何知道何时重新分配向量的内部数组
- 预分配向量是否更有效
- 在C++中动态分配向量的安全方法是什么
- 两种不同的解分配向量的方法为什么一种不起作用?
- 将元素添加到基于范围的预分配向量中是否合法
- 使用循环重新分配向量中的字符串
- C++:动态内存分配+向量
- 尝试使用while循环取消分配向量,任务管理器显示内存使用正在增加
- 动态分配向量
- 动态分配向量(或向量的向量)