删除动态分配的二维数组的函数

Function to delete dynamically allocated 2D array

在这里快速提问。使用此函数为 arr:

分配内存
int **createDynamicNumArray() {
int size;
cout << "Enter size: " << endl;
cin >> size;
int **numArr = new int *[size];
for (int i = 0; i < size; ++i) {
    numArr[i] = new int[size];
}
return numArr;
}

这是函数清除所述内存的正确方法吗?:

void delArr(int **&numArr, int size) {
for (int i = 0; i < size; ++i) {
    delete[] numArr[i];
}
delete[] numArr;
}

要点:我是只传递一个双指针还是一个双指针引用来删除函数?

提前致谢

Is this the correct way for a function to clear said memory?:

是的。

Key note: Do I pass just a double pointer or a double pointer reference to the function for deleting?

两者都有效。我建议不要使用引用,因为这样会减少 reader.

的混淆

但是,我建议首先避免拥有裸指针。在这种情况下,std::vector<std::vector<int>> 可能是合适的。

或者,更有效(可能;取决于您打算如何使用它)的替代方法是使用一维向量并转换索引。