将具有2D阵列输入的函数传递给函数
Pass function with 2D array input to a function
我想把一个函数传递给一个函数,在这种情况下,传递函数有2D数组作为输入。
对于1D阵列,我已经这样做了:
void bungee(double Y[], double DY[])
{
// ...
}
void euler(void(ODES)(double[], double[]), double A[], double STEP)
{
// ...
ODES(A, B);
}
int main()
{
// ...
euler(bungee, y, dt);
return 0;
}
现在我想把bungee传递给euler,输入2D数组,如下所示:
void bungee(double Y[][], double DY[][])
{ // ... }
void euler(void(ODES)(double[][], double[][])/*,...*/)
{ // ... }
int main()
{
euler(bungee);
return 0;
}
在C/C++中,数组在传递给函数时将转换为指针。双Y[]将与双*Y相同。
对于二维数组,在传递给函数时必须提供内部维度。
因为如果传递double Y[][],它将被转换为double(*Y)[],这是一个不完整的类型。
相反,双Y[][50]将被转换为双(*Y)[50],这很好。
对于N维数组,必须提供内部N-1维。
例如,双Y[][10][20][30]。
类似于为连续阵列解释的user534498,例如
void bungee(double [][50]);
void main()
{
double array[100][50];
bungee(array);
}
但是如果你像这个一样创建你的2D阵列
double **arr = new double* [100];
for (int i=0; i<100; i++)
arr[i] = new double [50];
您必须使用
void bungee(double **);
相关文章:
- 如果我更改函数输入,我的递归不起作用?
- 初始化与函数输入相关的全局数组
- 如何生成比用户使用 rand() 函数输入的数字大 5-10% 的数字?
- 将函数更改为具有设置函数输入变量的方法的类
- 如何避免将 const 和非 const 成员函数输入到模板中的代码重复
- 是否有一种方法可以避免标头文件中使用的constexpr函数输入全局范围,而无需额外的名称空间
- 迭代器作为C 中的函数输入
- 如何为作为雇员类的指针传入的构造函数输入数据
- 最小的函数输入和输出错误
- C++ 函数输入错误
- QComboBox 作为 QT 中的函数输入参数
- 函数输入之前的分割故障
- 如何在视觉工作室 2012年设置函数输入参数的颜色
- 函数输入变化
- 使用函数输入 1 个 int 和 1 个字符串数组并循环
- 将数组用于函数输入参数
- 如何在c++中将函数输入强制转换为智能指针
- 自定义检查器的覆盖率引用函数输入
- 为什么我不能使用两个scanf函数输入字母
- 犰狳cov函数输入