Arduino副功能计算数组

时间:2017-09-25 04:22:58

标签: arduino

我在Arduino IDE 1.8.3中使用Arduino Uno。我有两个数组。我想编写一个可以添加两个数组的副函数,并将结果返回给main函数并打印出来。

但我想使用x(sizeof(a)),但似乎不正确......

如何解决这个问题?

这是我的代码:

int a[]={1,2,3,4,5,6},b[]={1,1,1,1,1,1};
void setup() {
  Serial.begin(9600);
  int *p;
  p = add(a,b);
  for(int i=0;i<4;i++){
    Serial.print(*(p+i));
  }
}  

void loop() {
}

int * add(int *a,int *b) {
  int x = sizeof(a);
  int y = sizeof(b);
  static int z[4];
  for(int i=0;i<4;i++) {
     z[i]=a[i]+b[i];
  }
  return z;
}

1 个答案:

答案 0 :(得分:0)

int* a不知道数组的大小。 最简单地将其作为额外参数传递。

下一个问题是您的静态结果无法动态更改其大小。

总的来说,

static还有其他问题。

int* add(const int *a,const int *b, int* result, byte size) {
  for(byte i=0; i<size; i++) {
     result[i]=a[i]+b[i];
  }
  return result;
}

返回结果作为返回值可能很方便。