阅读量:0
在C++中,可以通过指针或引用的方式将动态二维数组传递给函数。
- 使用指针传递动态二维数组:
void function(int** array, int rows, int cols) { // 访问数组元素 for(int i = 0; i < rows; i++) { for(int j = 0; j < cols; j++) { cout << array[i][j] << " "; } cout << endl; } } int main() { int rows = 3; int cols = 3; // 创建动态二维数组 int** arr = new int*[rows]; for(int i = 0; i < rows; i++) { arr[i] = new int[cols]; } // 初始化数组 for(int i = 0; i < rows; i++) { for(int j = 0; j < cols; j++) { arr[i][j] = i * rows + j; } } // 调用函数 function(arr, rows, cols); // 释放内存 for(int i = 0; i < rows; i++) { delete[] arr[i]; } delete[] arr; return 0; }
- 使用引用传递动态二维数组:
void function(int**& array, int rows, int cols) { // 访问数组元素 for(int i = 0; i < rows; i++) { for(int j = 0; j < cols; j++) { cout << array[i][j] << " "; } cout << endl; } } int main() { int rows = 3; int cols = 3; // 创建动态二维数组 int** arr = new int*[rows]; for(int i = 0; i < rows; i++) { arr[i] = new int[cols]; } // 初始化数组 for(int i = 0; i < rows; i++) { for(int j = 0; j < cols; j++) { arr[i][j] = i * rows + j; } } // 调用函数 function(arr, rows, cols); // 释放内存 for(int i = 0; i < rows; i++) { delete[] arr[i]; } delete[] arr; return 0; }
无论是使用指针还是引用,都可以在函数中对动态二维数组进行操作。需要注意的是,在传递动态二维数组给函数后,需要在函数结束后手动释放内存,以避免内存泄漏。