c++ - 如何正确删除多维 vector ?

标签 c++ vector multidimensional-array memory-leaks

<分区>

所以我正在创建两个不同的多维 vector ,如下所示

string **customdiceArray = new string*[crows];
for(unsigned int i = 0; i<crows;i++){
    customdiceArray[i] = new string[ccolumns];
}

但是他们给我内存泄漏。我对两个 vector 进行了如下所示的删除调用。我哪里错了?

//Deallocate create objects
delete diceArray;
diceArray = 0;

//set<string>* words = new set<string>;
delete words;
words = 0;

//string **customdiceArray = new string*[crows];
delete customdiceArray;
customdiceArray = 0;

最佳答案

所以如果你想在这里以正确的方式使用 delete 一些例子:

对于一个变量

string *i = new string;
delete i;

对于数组(一维)

string *i = new string[10];
delete[] i;

对于数组(多维)

string **i = new *string[10]
for(int j=0; j<10;++j){
   i[j] = new string[10];
}

for(int j=0; j<10;++j){
   delete[] i[j];
}
delete[] i;

关于c++ - 如何正确删除多维 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22363398/

相关文章:

Powershell 添加到多维数组

c++ - 向其他文件中的现有 C++ 类添加方法

c++ - 如何在 boost 图中添加彩色边?

c++ - 使用不同的比较函数合并两个排序的双重 vector

c++ - vector 的成对迭代

sql - 将多个值集或数组传递给一个函数

PHP迭代多维数组

c++ - 信成词

c++ - 复制交换 idom : what if I change the class members?

c++传递大 vector 作为输出