函数定义为:
int strip(double *signalstnV){
.
.
return 0;
}
主要函数被称为:
main{
.
.
double signalstnV[iteration][2*range+1][3];
.
.
check = strip(signalstnV);
.
}
在 strip 函数中修改后,我想在 main 的 next 函数中使用数组。但是在编译过程中出现如下错误
sim.C: 在函数‘int main(int, char**)’中:
sim.C:54:26: 错误:无法将参数“1”的“double ()[151][3]”转换为“double”到“int strip(double*)” '
检查= strip (signalstnV);
我无法理解。请帮忙。 我的主要目标是从 strip 函数生成数组,然后在代码中将其传递给其他函数。
另外当我在另一个函数中使用这个数组时
threshold(double * signalstnV)
并使用 for 循环提取一些特定值,它给出的错误为:
invalid types ‘double[int]’ for array subscript
if (signalstnV[k][j][3] < -0.015){
..}
最佳答案
普通的一维数组衰减为指向其第一个值的指针。多维数组仅在其第一维衰减,衰减到指向数组初始第二维的指针。
如果您希望将多维数组“ super 衰减”为指向其第一个值的指针,那么只需自己动手:
check = strip(&signalstnV[0][0][0]);
关于c++ - 在 C++ 中通过引用传递三维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40174766/