Cómo devolver la matriz de la función en Arduino

Cómo devolver la matriz de la función en Arduino
Arduino es una plataforma electrónica que utiliza una herramienta separada Arduino IDE para programar tableros de microcontroladores. Al igual que la programación de C ++ Arduino, también utiliza matrices para almacenar múltiples valores de datos al mismo tiempo. Si pensamos en una variable como contenedor de almacenamiento, entonces las matrices son como contenedores pero con divisores que pueden almacenar múltiples datos a la vez. Las matrices Arduino se utilizan para controlar matrices LED, teclados y pantallas LCD.

Arduino Devuelve la matriz desde la función

Como los tableros Arduino se programan utilizando el lenguaje C/C ++, por lo que ambos idiomas no permiten devolver una matriz a una función como argumento. Sin embargo, podemos devolver una matriz de una función especificando el nombre de la matriz sin ningún índice.

Debemos declarar una función que devuelve un puntero si queremos devolver una matriz unidimensional desde la función. El segundo punto para recordar es que el lenguaje C no permite que las variables locales devuelvan las direcciones fuera de la función, por lo que las variables locales deben declararse como estáticas para evitar cualquier error de compilación.

Descripción

Mientras programan tableros Arduino, podemos inicializar una matriz que tenga un tamaño particular, una vez que la matriz se inicializa, su valor puede reemplazarse utilizando una función. Asignación de memoria dinámica se requiere cuando queremos devolver una matriz que se inicialice dentro de una función. Para hacer esto malloc () y gratis() Las funciones se pueden usar junto con punteros en Arduino.

El problema es que si una función devuelve una matriz utilizando la asignación de memoria dinámica, el resultado puede cambiarse debido a la fuga de memoria y los punteros colgantes. Entonces, la mejor manera de devolver una matriz desde una función es inicializar una matriz y cambiar sus valores usando una función en lugar de devolver toda la matriz desde la función.

Creemos una función para cambiar los valores de una matriz inicializándola con un tamaño entero constante. Vea el código a continuación.

Código de ejemplo

const int size = 5; /*Tamaño de la matriz definido*/
int array_new [size]; /*Se define la nueva matriz*/
void array () /*función para almacenar el valor de las matrices* /

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

Array_new [i] = i;


Configuración vacía ()

De serie.comenzar (9600); /*Comienza la comunicación en serie*/
Formación(); /*La función de matriz se llama*/
para (int i = 0; i
De serie.println (array_new [i]); /*Los elementos de la matriz se imprimen*/


bucle void ()

En el código anterior, una matriz se inicializa utilizando enteros constantes porque si no usamos un entero constante, IDE mostrará un error. Aquí en la matriz dada, no hemos almacenado ningún valor para que la matriz se inicialice con valores nulos, pero también podemos almacenar valores dentro de la matriz durante la inicialización.

A continuación creamos el Formación() función que tiene un tipo de retorno vacío para almacenar valores dentro de la matriz. Además, el tipo de retorno es nulo porque no queremos devolver nada que solo necesitemos almacenar los valores, en caso de que si uno necesita devolver el valor, podemos cambiar el tipo de retorno de acuerdo con ellos, como ellos, como En t.

Próximo para El bucle se usa para almacenar valores, sin embargo, también podemos almacenar valores manualmente. Después de eso usando De serie.imprimir() La salida se imprime en el monitor en serie.

Producción

Valores de impresión de salida de 0 a 4 Devuelve una matriz desde una función:

Conclusión

Este artículo cubre todos los pasos detallados sobre cómo podemos inicializar una matriz utilizando el tipo de datos de entero constante y el valor de almacenamiento dentro de él usando el bucle for For. Más tarde el Formación() la función se llama dentro de la parte de configuración del código, lo que resulta en Revolver la matriz desde la función.