Como retornar a matriz da função em Arduino

Como retornar a matriz da função em Arduino
Arduino é uma plataforma eletrônica que usa uma ferramenta separada Arduino IDE para programar placas de microcontrolador. Como a programação C ++ Arduino, também usa matrizes para armazenar vários valores de dados ao mesmo tempo. Se pensarmos em uma variável como um contêiner de armazenamento, as matrizes são como contêineres, mas com divisores que podem armazenar vários dados por vez. Matrizes Arduino são usadas para controlar matrizes LED, teclados e displays LCD.

Arduino Return Array da função

Como as placas Arduino são programadas usando a linguagem C/C ++, para que esses dois idiomas não permitam retornar uma matriz a uma função como argumento. No entanto, podemos retornar uma matriz de uma função especificando o nome da matriz sem qualquer índice.

Devemos declarar uma função retornando um ponteiro se quisermos retornar uma matriz unidimensional da função. O segundo ponto a ser lembrado é que o idioma C não permite que as variáveis ​​locais retornem endereços fora da função; portanto, as variáveis ​​locais devem ser declaradas como estáticas para evitar qualquer erro de compilação.

Descrição

Ao programar as placas Arduino, podemos inicializar uma matriz com um tamanho específico, uma vez que a matriz seja inicializada, seu valor pode ser substituído usando uma função. Alocação de memória dinâmica é necessário quando queremos retornar uma matriz que é inicializada dentro de uma função. Para fazer isso Malloc () e livre() funções podem ser usadas junto com ponteiros em Arduino.

O problema é que, se uma função retornar uma matriz usando alocação de memória dinâmica, o resultado pode ser alterado devido a vazamento de memória e ponteiros pendurados. Portanto, a melhor maneira de devolver uma matriz de uma função é inicializar uma matriz e alterar seus valores usando uma função em vez de retornar toda a matriz da função.

Vamos criar uma função para alterar os valores de uma matriz, inicializando -a com um tamanho inteiro constante. Veja o código abaixo.

Código de exemplo

const int tamanho = 5; /*Tamanho da matriz definido*/
int array_new [size]; /*Nova matriz é definida*/
Void Array () /*Função para armazenar as matrizes Valor* /

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

Array_new [i] = i;


configuração void ()

Serial.começar (9600); /*A comunicação serial começa*/
Variedade(); /*A função da matriz é chamada*/
para (int i = 0; i
Serial.println (array_new [i]); /*Os elementos da matriz são impressos*/


Void Loop ()

No código acima, uma matriz é inicializada usando números inteiros constantes, porque se não usarmos um número inteiro constante, o IDE mostrará um erro. Aqui na matriz especificada, não armazenamos nenhum valor para que a matriz seja inicializada com valores nulos, mas também podemos armazenar valores dentro da matriz durante a inicialização.

Em seguida, criamos o Variedade() função com o tipo de retorno vazio para armazenar valores dentro da matriz. Além disso, o tipo de retorno é anulado porque não queremos devolver nada que precisamos apenas armazenar valores, caso se precisar retornar o valor, podemos alterar o tipo de retorno de acordo com eles, como int.

Próximo para O loop é usado para armazenar valores, no entanto, também podemos armazenar valores manualmente. Depois disso, usando Serial.imprimir() A saída é impressa no monitor serial.

Saída

Saída Os valores de impressão de 0 a 4 retornando uma matriz de uma função:

Conclusão

Este artigo cobre todas as etapas detalhadas de como podemos inicializar uma matriz usando o tipo de dados inteiro constante e o valor de armazenar nele usando o loop for loop. Mais tarde o Variedade() A função é chamada dentro da parte de configuração do código, portanto, resultando em Retornando a matriz da função.