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

标签 c++ arrays function reference

函数定义为:

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/

相关文章:

函数中的 C++ const 关键字

c++ - 获取 MAC OS X 的机器 ID

python - 如何在python中初始化一个二维字符串DataFrame数组

javascript - JavaScript 中的函数表达式与声明有什么区别?

arrays - VBA 停止使用临时范围

c++ - 动态大小数组在哪里创建? (堆栈或堆)

c++ - 在派生类中创建具有相同名称但不同返回类型的新函数

c++ - 内存泄漏检测和覆盖新功能?

c++ - 全局 new 和 delete 运算符的定义

c++ - 将 "Out of Memory"错误写入文件,没有内存?