int**p作为函数形参,我该怎么向函数传参?
时间: 2023-11-14 13:08:25 浏览: 165
给主函数传参
要向函数传递 int 类型的二维数组,可以使用指向指针的指针。下面是一个示例:
```c++
void myFunction(int** p, int rows, int cols) {
// 访问二维数组元素
for(int i = 0; i < rows; i++) {
for(int j = 0; j < cols; j++) {
cout << p[i][j] << " ";
}
cout << endl;
}
}
int main() {
int rows = 3, cols = 4;
// 动态分配二维数组
int** p = new int*[rows];
for(int i = 0; i < rows; i++) {
p[i] = new int[cols];
}
// 对二维数组赋值
for(int i = 0; i < rows; i++) {
for(int j = 0; j < cols; j++) {
p[i][j] = i * cols + j;
}
}
// 调用函数
myFunction(p, rows, cols);
// 释放内存
for(int i = 0; i < rows; i++) {
delete[] p[i];
}
delete[] p;
return 0;
}
```
在这个示例中,我们首先动态分配了一个 rows 行 cols 列的二维数组,然后对其进行赋值。接着,我们将指向指针的指针 p 作为函数 myFunction 的参数进行传递。在函数内部,我们可以像访问二维数组一样访问 p 所指向的二维数组元素。最后,我们释放了动态分配的内存。
阅读全文