我在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;
}
答案 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;
}
返回结果作为返回值可能很方便。