释放原语矢量

时间:2016-07-06 15:49:59

标签: c++ stl

我正在深入研究一些最初在C ++ Builder 6中构建的古代代码。整个代码库中存在以下模式,恕我直言,它应该如下所示:

vector<int> x;
try {
    ... some run of the mill vector manipulation
} __finally {
      delete &x;
}

delete &x;真的很奇怪。据我了解,vector<int>只会在其所包含的函数的生命周期内存在,因此无需在其上调用delete

这种模式背后是否存在一些合理的动机,还是只是一般的错误?

2 个答案:

答案 0 :(得分:4)

它肯定不是标准的C ++。

只有在使用delete时才能使用new。否则行为未定义

答案 1 :(得分:2)

至少正如你在这里所展示的那样,这是完全错误的。