gpt4 book ai didi

c++ - 删除 vector 指针

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:07:31 24 4
gpt4 key购买 nike

我正在尝试编写一段非常简单的代码来使用 STL vector 创建 3x2 矩阵。
这是我的:

#include <vector>
using namespace std;

int main ()
{

int i;

vector<int> * x = new vector<int> [3];

for (i = 0; i < 3; i++)
x[i] = vector<int> (2);

delete x;

return 0;

}

问题是每次我运行程序时,它都会崩溃。如果我删除 delete x然后它工作正常,但可能会导致内存泄漏。

我知道这可能不是创建矩阵的最佳方法,而且有很多选择,但我只想知道为什么上述程序每次都会崩溃。

此外,替换所有出现的 vector<int>int , 然后一切正常。

最佳答案

要销毁动态分配的数组,您必须使用delete[],而不是delete

虽然这将使代码工作,但它不是最佳解决方案。下面的程序做同样的事情,但更简洁、更安全。

#include <vector>

int main ()
{
std::vector<std::vector<int>> x(3, std::vector<int>(2));
}

关于c++ - 删除 vector 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11988849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com