Ciao Stefano, grazie del tuo intervento, ma non mi è del tutto chiaro perché da quello che ho letto sul sito ufficiale e cito testualmente:
To assign a value to an array:
mySensVals[0] = 10;
It also means that in an array with ten elements, index nine is the last element. Hence:
int myArray[10]={9,3,2,4,3,2,7,8,9,11};
// myArray[9] contains 11
// myArray[10] is invalid and contains random information (other memory address)
ma se inserisco nell'IDE Arduino questo:
int myArray[0]={10}; mi da errore (too many initializers for 'int [0]')
ma se faccio:
int myArray[0]; //array dichiarata ma senza inizializzazione dati,
myArray[0]=10; // assegno all'indice 0 il valore 10
Fatto così Non da nessun errore. Quindi il mio errore è stato non dichiarare prima l'array e poi assegnargli il valore.
Ma se faccio così:
int Array[1]={10}; //dichiaro l'array e la sua dimensione, ed assegno un valore (ma secondo quanto letto nel sito, ne dovrei poter inizializzare due dati e non uno solo. Fatto così non da errori ovvero:
int Array[1]={10}; non da errore.
int Array[0]={10}; da errore.
int Array[0]={}; non da errore.
int Array[8];
Array[8]=10,20,30,40,50,60,70,80,90; così funziona! (senza int perché dichiarata prima e senza dati tra parentesi graffe!!
Capisco che il problema è che non ho ancora afferrato del tutto la differenza, dopo tutto è la prima volta con arduino, con C e in generale con le array visto che le ho usate poco in passato, nello stesso sito ufficiale (e in quelli che trattano "C") è chiaro che essendo basati "zero" quindi partono da 0 come dice il testo che ho qui sopra evidenziato (in un'array di dieci elementi, l'ultimo index sarà il 9! quindi se dichiaro ed inizializzo un array con index 0 è plausibile che possa metterci un dato. no?
Beh, significa che dovrò prima dichiararla e poi in secondo momento assegnargli i valori, ma sarebbe stato meglio farlo fin dall'inizio, no? Secondo me vi è qualche inesattezza nella spiegazione.
Comunque grazie della tua disponibilità!
saluti,
Antonio
PS: scusate del lungo "intervento" tenterò di essere più sintetico in futuro! Ciao!