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*/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.