forum.arduino.cc
forum.arduino.cc
旧プログラム
void setup() {
Serial.begin(9600);
}
void hoge(int data[], int index){
for(int x=0;x<index; x++){
Serial.println(data[x]);
delay(1000);
}
}
void loop() {
int data1[] = {10, 20, 30, 40, 50};
hoge(data1, sizeof(data1)/sizeof(data1[0])); //配列と配列の要素数を引数とする
}
Arduinoにおいて配列を関数に渡すには配列名と配列の要素数の2つを引数として与えないとうまく行きません
結構悩みました・・・
新プログラム
2018/10/10にてコメントによりポインタのほうがスマートにかけることがわかりました
また、配列を渡しても大丈夫ということがわかりました
//ポインタ型で引数とする
void ArrayOutPointer(int *AccData){
for(int i=0; i<sizeof(AccData) + 1; i++){
Serial.println(AccData[i]);
}
}
//配列型を引数とする
void ArrayOut(int AccData[]){
for(int i=0; i< sizeof(AccData) + 1; i++){
Serial.println(AccData[i]);
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println();
Serial.println("Array Test");
int myData[] = {1, 2, 3, 4, 5};
ArrayOutPointer(myData);
ArrayOut(myData);
}
void loop() {
// put your main code here, to run repeatedly:
}
以前は配列を渡すとできなかったのですが、現時点(2018/10/10)ではできるようになっていました
追えてはないですがArduinoIDEの更新でできるようになったからでしょうか?