【发布时间】:2016-01-23 16:54:20
【问题描述】:
我正在尝试制作一个将一些数据读入二维数组的程序。为了测试功能,我制作了这个小示例程序。该变量目前被声明为一个固定的二维数组,并包含一些布尔数据。
boolean runData[4][20] = {
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
};
现在,我有一个必须向其传递数据的函数,该函数将一维布尔数组作为参数:
void fireLEDs(boolean states[20]){
...
}
所以这意味着我必须将这些数据分割成 4 个单维数组,并将每个数组传递给 fireLEDs 函数。
我现在正在尝试执行此操作的代码是:
for(int b=0;b<4;b++){
fireLEDs(runData[b][]);
delayMicroseconds(divDelay);
}
但是,这不起作用。
我对 C 不是很好,所以这样的函数可能根本不存在,但是一些 google-fu 说这应该可以工作。
作为说明:我使用的是 arduino 编译器,但我认为这个问题与此无关。
【问题讨论】:
-
However, this doesn't work.不是一个很好的问题陈述。 -
欢迎来到 Stack Overflow!请先阅读How to Ask页面。
-
doesn't work是否意味着编译器错误或错误输出?只要函数void fireLEDs(boolean states[20])只能读取 20 个元素,runData[b]就可以工作。由于创建 2D 数组将所有内容连续存储在内存中,这意味着如果读取超过 20 个的函数将读取 2D 数组中下一个数组中的元素跨度> -
@Sourav Ghosh 抱歉,但没有太多声明,程序只是无法编译。给出的错误是调用“fireLEDs”函数的行上的“expected primary-expression before ']' token”。
标签: c arrays multidimensional-array arduino