在C++中,如何通过指针将动态分配的二维数组传递给函数?
时间: 2024-10-19 15:07:47 浏览: 42
在C++中,要将动态分配的二维数组通过指针传递给函数,首先需要声明指向二维数组的指针,然后在函数接收这个指针作为参数。由于二维数组本质上是一维的数组,我们可以通过指针间接访问其元素。以下是一个示例:
```cpp
#include <iostream>
// 定义一个函数,接受二维数组的指针作为参数
void printArray(const int* arr, int rows, int cols) {
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
std::cout << arr[i * cols + j] << ' ';
}
std::cout << '\n';
}
}
// 主函数中动态分配并初始化二维数组
int main() {
int rows, cols;
std::cout << "Enter the number of rows and columns: ";
std::cin >> rows >> cols;
// 动态分配二维数组
int** dynamicArr = new int*[rows];
for (int i = 0; i < rows; ++i) {
dynamicArr[i] = new int[cols]; // 分配每一行的内存
for (int j = 0; j < cols; ++j) {
dynamicArr[i][j] = i * cols + j;
}
}
// 调用函数,并传入指针
printArray(dynamicArr, rows, cols);
// 在函数结束后,别忘了释放内存
for (int i = 0; i < rows; ++i) {
delete[] dynamicArr[i];
}
delete[] dynamicArr;
return 0;
}
```
在这个例子中,`printArray`函数接受一个指向`int`类型的指针以及行数和列数,然后遍历并打印出数组内容。注意,在结束函数调用后,你需要确保对所有动态分配的内存进行正确的释放,防止内存泄漏。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)