There are several ways to pass an array to a function.
Old-School C Using a Pointer and Array Size:
const size_t arraySize = 10;
uint8_t myArray[arraySize];
void functionThatTakesAnArray(uint8_t *array, size_t theSize);
void setup() {
functionThatTakesAnArray(myArray, arraySize);
}
void loop() {
}
void functionThatTakesAnArray(uint8_t *array, size_t theSize) {
for (size_t i = 0; i < theSize; i++) {
// do stuff with element array[i]
}
}
Or, you could go a little more C++:
const size_t arraySize = 10;
using newArrayType = uint8_t[arraySize];
void functionThatTakesAnArray(newArrayType &array);
newArrayType myArray;
void setup() {
functionThatTakesAnArray(myArray);
}
void loop() {
}
void functionThatTakesAnArray(newArrayType &array) {
for (uint8_t j : array) {
// do stuff with j
}
}
The next step might be to use a template. But, that's probably unnecessary here.