C ++:如何安全地取消分配向量的堆分配数组?

问题描述

我目前正在使用的代码目前需要我创建一个向量数组(我是C ++的新手,如果这是一个绝对可怕的想法,我将非常感谢您的反馈)。

假设我在堆上为矢量分配内存,如下所示:

#include <iostream>
#include <vector>
#include <random>

int main() {
    typedef std::vector<double> doubleVec;
    long N = 1000;
    long M = 1000;

    doubleVec *array = new doubleVec[N];

    for (long i = 0; i < N; i++) {
        doubleVec currentVec = array[i];
        currentVec.resize(M);
        for (long j = 0; j < M; j++)
            currentVec[j] = std::rand();
    }
    // ... do something with the data structure

   delete [] array;
}

当我完成所有需要处理的数据后,应该如何安全地释放该数据结构?

注意: 在我的初始帖子中,我做错了其他一些事情,但我不想成为讨论的重点(未初始化的变量,没有调整向量大小等)。我现在修复了。谢谢大家指出来。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)