删除动态分配的二维数组的函数
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>>
可能是合适的。
或者,更有效(可能;取决于您打算如何使用它)的替代方法是使用一维向量并转换索引。
在这里快速提问。使用此函数为 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>>
可能是合适的。
或者,更有效(可能;取决于您打算如何使用它)的替代方法是使用一维向量并转换索引。