C++动态二维数组如何传递给函数

avatar
作者
猴君
阅读量:0

在C++中,可以通过指针或引用的方式将动态二维数组传递给函数。

  1. 使用指针传递动态二维数组:
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; } 
  1. 使用引用传递动态二维数组:
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; } 

无论是使用指针还是引用,都可以在函数中对动态二维数组进行操作。需要注意的是,在传递动态二维数组给函数后,需要在函数结束后手动释放内存,以避免内存泄漏。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!