Come restituire l'array dalla funzione in Arduino

Come restituire l'array dalla funzione in Arduino
Arduino è una piattaforma elettronica che utilizza uno strumento separato Arduino IDE per programmare le schede di microcontrollore. Come la programmazione Arduino C ++ utilizza anche array per archiviare più valori di dati allo stesso tempo. Se pensiamo a una variabile come un contenitore di archiviazione, gli array sono come contenitori ma con divisori in grado di archiviare più dati alla volta. Gli array Arduino vengono utilizzati per il controllo di matrice LED, tastie e display LCD.

Arduino Return Array dalla funzione

Poiché le schede Arduino sono programmate utilizzando il linguaggio C/C ++, quindi entrambe queste lingue non consentono di restituire un array a una funzione come argomento. Tuttavia, possiamo restituire un array da una funzione specificando il nome dell'array senza indice.

Dobbiamo dichiarare una funzione che restituisce un puntatore se vogliamo restituire un array unidimensionale dalla funzione. Il secondo punto da ricordare è che la lingua C non consente alle variabili locali di restituire indirizzi al di fuori della funzione, quindi le variabili locali dovrebbero essere dichiarate statiche per evitare qualsiasi errore di compilazione.

Descrizione

Durante la programmazione delle schede Arduino possiamo inizializzare un array con una dimensione particolare, una volta inizializzato l'array, il suo valore può essere sostituito usando una funzione. Allocazione di memoria dinamica è richiesto quando vogliamo restituire un array inizializzato all'interno di una funzione. Per fare questo Malloc () E gratuito() Le funzioni possono essere utilizzate insieme ai puntatori in Arduino.

Il problema è che se una funzione restituisce un array utilizzando l'allocazione della memoria dinamica, il risultato può essere modificato a causa della perdita di memoria e dei puntatori penzolanti. Quindi il modo migliore per restituire un array da una funzione è inizializzare un array e modificarne i valori usando una funzione invece di restituire l'intero array dalla funzione.

Creiamo una funzione per modificare i valori di un array inizializzandolo con una dimensione intera costante. Vedi il codice qui sotto.

Codice di esempio

const int size = 5; /*Dimensione dell'array definita*/
int array_new [size]; /*Nuovo array è definito*/
void array () /*funzione per archiviare il valore degli array* /

per (int i = 0; i<5;i++) /*for loop to store values in function*/

Array_new [i] = i;


void setup ()

Seriale.Inizia (9600); /*Inizia la comunicazione seriale*/
Vettore(); /*La funzione array è chiamata*/
per (int i = 0; i
Seriale.println (array_new [i]); /*Gli elementi array sono stampati*/


void loop ()

Nel codice sopra, un array viene inizializzato usando numeri interi costanti perché se non usiamo un numero intero costante, IDE mostrerà un errore. Qui nell'array dato, non abbiamo memorizzato alcun valori in modo che l'array venga inizializzato con valori null ma possiamo anche archiviare i valori all'interno dell'array durante l'inizializzazione.

Successivamente abbiamo creato il Vettore() funzione con tipo di ritorno vuoto per archiviare i valori all'interno dell'array. Inoltre, il tipo di ritorno è nullo perché non vogliamo restituire nulla di cui dobbiamo solo archiviare i valori, nel caso in cui si debba restituire il valore, possiamo cambiare il tipo di reso in base a loro come int.

Prossimo per Loop viene utilizzato per archiviare i valori, tuttavia possiamo anche archiviare i valori manualmente. Dopo quello usando Seriale.stampa() L'output è stampato sul monitor seriale.

Produzione

Valori di stampa di output da 0 a 4 restituendo un array da una funzione:

Conclusione

Questo articolo copre tutti i passaggi dettagliati su come possiamo inizializzare un array utilizzando il tipo di dati interi costanti e archiviare il valore al suo interno utilizzando il loop. Più tardi il Vettore() La funzione è chiamata all'interno della parte di configurazione del codice, risultando Array di ritorno dalla funzione.