Передача массива в качестве аргумента функции

Пожалуйста, помогите, как это сделать.

int myArray1[] = {10, 11, 12};
int myArray2[] = {15, 16, 17};


void setup() {
  Serial.begin(9600);
}

void loop() {

  myFunction(myArray1); delay(1000); // я хочу использовать вот так

}

void myFunction(int callArray) {
  for (int a = 0; a < 3; a++) {
    Serial.print(callArray[a]); Serial.print(" ");
  }
  Serial.println();
}

, 👍0


2 ответа


0

Один из способов — объявить размер в определении функции

int myArray1[] = {10, 11, 12};
int myArray2[] = {15, 16, 17};


void setup() {
  Serial.begin(9600);
}

void loop() {

  myFunction(myArray1); delay(1000); // я хочу использовать вот так

}

void myFunction(int callArray[3]) {
  for (int a = 0; a < 3; a++) {
    Serial.print(callArray[a]); Serial.print(" ");
  }
  Serial.println();
}
,

2

Добавьте звёздочку к определению функции myFunction. Это скомпилирует:

int myArray1[] = {10, 11, 12};
int myArray2[] = {15, 16, 17};


void setup() {
  Serial.begin(9600);
}

void loop() {

  myFunction(myArray1); delay(1000); // я хочу использовать вот так

}

void myFunction(int * callArray) {
  for (int a = 0; a < 3; a++) {
    Serial.print(callArray[a]); Serial.print(" ");
  }
  Serial.println();
}
,