Ripetere stesse operazioni su diversi array

Salve,

Come da titolo ho bisogno di compiere operazioni uguali su 10 array diversi; (int array1, int array2, ecc).

Per non scrivere 10 volte le stesse istruzioni (ognuna con riferimenti al rispettivo array) volevo impiegare un ciclo for, ma non trovo un modo per passare alle funzioni impiegate, un nome di array diverso ad ogni ciclo.

Suggerimenti ?

Grazie

Essendo il tuo primo post Ti invitiamo a presentarti QUI (dicci quali conoscenze hai di elettronica e di programmazione) e a leggere il regolamento QUI se non lo hai già fatto.

Comunque benvenuto sul forum.

Attilio

Non devi usare un ciclo for, devi scrivere una funzione che fa quel che serve e prende l'array su cui lavorare come parametro. Poi la chiami tot volte, ogni volta con un array diverso.

Puoi usare un array di puntatori da scandire con un for al cui interno chiami la funzione e passi il puntatore.
Supponendo 10 array di byte ognuno con dimensione differente.

byte *arrayList[10]; // può contenere 10 puntatori di cui ognuno punta ad uno dei dieci array.
// Inizializza arrayList
arrayList[0] = array0;
arrayList[1] = array1;
arrayList[2] = array2;
...
arrayList[9] = array9; // decimo puntatore a decimo array

// se i 10 array hanno dimensione diversa ti serve un altro array che contiene le dimensioni di ognuno.
byte arrayListSize[10];

// devi inizializzare ogni elemento di arrayListSize con la dimensione di ognuno dei 10 array

//  il ciclo for
for( byte idx=0; idx < 10; idx++) {
     myFunction( arrayList [idx], arrayListSize [idx] );
}

// La funzione myFunction
void myFunction( byte *aList, byte LSize ) {
    for ( byte idx=0; idx<LSize; idx++ ) {

   }
}

Ciao.

Grazie, almeno so quale strada prendere.
Al momento però mi scontro col problema di passare alla funzione il nome di un array.
Ho scritto questo, che dovrebbe stampare il secondo valore (25) di Array1. Dove sbaglio ?

byte array[5]={10,25,30,27,5};

void setup() 
{
    Serial.begin(9600); //Avvia comunicazione seriale
}
void loop() 
{
    Serial.print (Funzione(array, 1));
}

byte Funzione(byte nomeArray, byte indArray)
{
    byte valore = nomeArray[indArray];
    return valore;
}

Devi dire alla funzione che il primo parametro è un array, non un singolo byte:

byte Funzione(byte nomeArray[], byte indArray) {

che non sono sicuro funzioni, oppure:

byte Funzione(byte *nomeArray, byte indArray) {

Nota che, per una serie di motivi, quando in C/C++ si passa un array ad una funzione, è buona norma passarle anche un seconda variabile con la dimensione dell'array, a meno che proprio non sia scolpita nella pietra:

byte Funzione(byte *array, unsigned int len, byte index) {

Funziona in entrambi i modi. Io cercavo il problema nella riga della chiamata....
Ti ringrazio molto. Posso andare avanti.

Ok. Con le vostre indicazioni, sono riuscito a fare quello che mi serviva.
Ho trovato utile questo tutorial array di arrays Magari può servire a qualcun'altro.
Grazie
Saluti