在c ++中通过引用传递三维数组

Pur*_*mar 4 c++ arrays reference function

功能定义为:

int strip(double *signalstnV){
.
.
return 0;
}
Run Code Online (Sandbox Code Playgroud)

主要功能称为:

main{
.
.
double signalstnV[iteration][2*range+1][3];
.
.
check = strip(signalstnV);
.
}
Run Code Online (Sandbox Code Playgroud)

我想在strip函数中修改后在main中的next函数中使用该数组.但在编译期间,我收到如下错误

sim.C:在函数'int main(int,char**)'中:

sim.C:54:26:错误:无法将参数'1'的'double()[151] [3]'转换为'double '为'int strip(double*)'

check = strip(signalstnV);

我无法理解它.请帮忙.我的主要目标是从strip函数生成数组,并在稍后的代码中将其传递给其他函数.

当我在另一个函数中使用此数组时

threshold(double * signalstnV)
Run Code Online (Sandbox Code Playgroud)

并使用for循环提取一些特定值,它给出错误:

invalid types ‘double[int]’ for array subscript 
if (signalstnV[k][j][3] < -0.015){
..}
Run Code Online (Sandbox Code Playgroud)

Sam*_*hik 5

普通的一维数组衰减到指向其第一个值的指针.多维数组仅在其第一维中衰减,衰减为指向数组的初始第二维的指针.

如果您希望将多维数组"超级衰减"到指向其第一个值的指针,那么只需自己执行:

check = strip(&signalstnV[0][0][0]);
Run Code Online (Sandbox Code Playgroud)