Comment retourner le tableau de la fonction dans Arduino

Comment retourner le tableau de la fonction dans Arduino
Arduino est une plate-forme électronique qui utilise un outil distinct Arduino IDE pour programmer des cartes de microcontrôleur. Comme la programmation C ++ Arduino utilise également des tableaux pour stocker plusieurs valeurs de données en même temps. Si nous pensons à une variable en tant que conteneur de stockage, alors les tableaux sont comme des conteneurs mais avec des séparateurs qui peuvent stocker plusieurs données à la fois. Les tableaux Arduino sont utilisés pour contrôler les matrices LED, les claviers et les écrans LCD.

Arduino Retour Retour de la fonction

Comme les cartes Arduino sont programmées à l'aide de la langue C / C ++, ces deux langages ne permettent pas de renvoyer un tableau à une fonction comme un argument. Cependant, nous pouvons retourner un tableau à partir d'une fonction en spécifiant le nom du tableau sans aucun index.

Nous devons déclarer une fonction renvoyant un pointeur si nous voulons renvoyer un tableau unidimensionnel de la fonction. Le deuxième point à retenir est que le langage C ne permet pas aux variables locales de retourner les adresses en dehors de la fonction, de sorte que les variables locales doivent être déclarées statiques pour éviter toute erreur de compilation.

Description

Pendant la programmation des tableaux Arduino, nous pouvons initialiser un tableau ayant une taille particulière, une fois le tableau initialisé, sa valeur peut être remplacée à l'aide d'une fonction. Allocation de mémoire dynamique est requis lorsque nous voulons retourner un tableau qui est initialisé à l'intérieur d'une fonction. Pour faire ça malloc () et gratuit() Les fonctions peuvent être utilisées avec des pointeurs dans Arduino.

Le problème est que si une fonction renvoie un tableau utilisant une allocation de mémoire dynamique, le résultat peut être modifié en raison de la fuite de la mémoire et des pointeurs pendants. Ainsi, la meilleure façon de retourner un tableau à partir d'une fonction est d'initialiser un tableau et de modifier ses valeurs en utilisant une fonction au lieu de renvoyer le tableau entier de la fonction.

Créons une fonction pour modifier les valeurs d'un tableau en l'initialisant avec une taille entière constante. Voir le code ci-dessous.

Exemple de code

const int taille = 5; / * Taille du tableau défini * /
int array_new [size]; / * Le nouveau tableau est défini * /
void array () / * fonction pour stocker la valeur des tableaux * /

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

Array_new [i] = i;


void setup()

En série.commencer (9600); / * La communication série commence * /
Déployer(); / * La fonction du tableau est appelée * /
pour (int i = 0; i
En série.println (array_new [i]); / * Les éléments du tableau sont imprimés * /


VOID LOOP ()

Dans le code ci-dessus, un tableau est initialisé en utilisant des entiers constants car si nous n'utilisons pas un entier constant, IDE affichera une erreur. Ici, dans le tableau donné, nous n'avons pas stocké de valeurs afin que le tableau sera initialisé avec des valeurs nulles, mais nous pouvons également stocker des valeurs à l'intérieur du tableau pendant l'initialisation.

Ensuite, nous avons créé le Déployer() fonction ayant un type de retour vide pour stocker les valeurs à l'intérieur du tableau. De plus, le type de retour est vide car nous ne voulons rien retourner, nous n'avons besoin que de stocker les valeurs, au cas où il faut de la valeur de retour, nous pouvons modifier le type de retour en fonction de eux tels que int.

Suivant pour la boucle est utilisée pour stocker les valeurs, mais nous pouvons également stocker les valeurs manuellement. Après cette utilisation En série.imprimer() La sortie est imprimée sur le moniteur en série.

Sortir

Des valeurs d'impression de sortie de 0 à 4 renvoyant un tableau à partir d'une fonction:

Conclusion

Cet article couvre toutes les étapes détaillées sur la façon dont nous pouvons initialiser un tableau à l'aide du type de données entier constant et de la valeur de stockage à l'intérieur en utilisant la boucle pour. Plus tard le Déployer() La fonction est appelée à l'intérieur de la partie de configuration du code, ce qui entraîne donc Renvoi du tableau de la fonction.