如何在c++中释放动态数组的内存

how release memory of a dynamic array in c++

本文关键字:动态 数组 内存 释放 c++      更新时间:2023-10-16

我在c++中有一个动态数组,定义如下:

string** CommunityNodes = new string *[10000];
for (int i = 0; i < 10000; ++i) {
     CommunityNodes[i] = new string[1000];
}

如果数组类型是int类型,我可以这样发布它:

int ** array_iter = CommunityNodes;
    while(*array_iter){
            delete(*array_iter++);
}
delete CommunityNodes;

但是我的数组类型是字符串,通过上面的方法,我得到了一些错误。那么我该如何释放这个动态数组的已分配内存呢?

如果使用new []分配内存,则需要使用delete []:

for (int i = 0; i < 10000; ++i) {
    delete [] CommunityNodes[i];
}
delete [] CommunityNodes;