Como Retornar Um Array

Índice:

Como Retornar Um Array
Como Retornar Um Array

Vídeo: Como Retornar Um Array

Vídeo: Como Retornar Um Array
Vídeo: Como retornar um array em uma funçao em C+? 2024, Maio
Anonim

Arrays são uma das formas mais simples de armazenamento de dados estruturados. Uma vez que áreas de memória indivisíveis são alocadas para armazenar matrizes unidimensionais, e a maioria das linguagens de programação tem construções sintáticas para sua declaração, elas são intensamente usadas como buffers para transferir grandes quantidades de informações para várias funções (incluindo biblioteca). Por sua vez, as funções às vezes precisam retornar um array.

Como retornar um array
Como retornar um array

Necessário

  • - editor de texto;
  • - Compilador e vinculador C ou C ++.

Instruções

Passo 1

Retorne dados de uma função ou método colocando-os em uma matriz de comprimento fixo, alocada pelo chamador e passada por referência. Defina o tipo de dados apropriado, por exemplo: typedef int t_array10 [10]; Use-o na declaração e implementação da função ou método necessário: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Chame apropriadamente: int aNumbers [10]; ReturnArray (aNumbers); A desvantagem desse método é que o comprimento da matriz é fixo.

Passo 2

Retorne os dados da matriz colocando-os em um buffer de saída alocado pelo chamador, passado por um ponteiro. O protótipo de uma função ou método pode conter um parâmetro declarado em notação de matriz sem especificação de tamanho: void ReturnArray (int anArray , int nSize); ou como um ponteiro: void ReturnArray (int * pnArray, int nSize); Em ambos casos, o parâmetro identificador pode ser usado na notação de array: void ReturnArray (int * pnArray, int nSize) {for (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // chamar int aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Este método de passar matrizes para funções e retornar dados de matriz delas é usado na esmagadora maioria dos casos ao desenvolver programas em C. Observe que funções e métodos que aceitam e retornam dados desta forma, como regra, devem ter um parâmetro adicional através do qual o tamanho real do buffer é passado.

etapa 3

Retorna uma matriz criada em uma função ou método. Formalmente, neste caso, não deve ser retornado um array, mas um ponteiro para seu primeiro elemento: int * ReturnArray () {int * pnArray = new int [10]; // trabalha com pnArray return pnArray;} // obtém um ponteiro para o array criado int * pnNumbers = ReturnArray (); // use delete pnNumbers; // delete Este método tem algumas limitações. Portanto, a matriz deve estar localizada no heap. Além disso, a sua eliminação deve ser feita com o método correspondente à criação (eliminar no caso de utilizar new, free for malloc, etc.).

Passo 4

Use classes de contêiner para retornar matrizes convenientemente ao desenvolver programas C ++. Um exemplo de criação e retorno de uma matriz que é um objeto da classe de modelo de vetor da Biblioteca de modelos padrão C ++ especificada para int pode ser semelhante a: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; return oArray;} std:: vector oArray = ReturnArray (); Observe que a maioria dos frameworks populares fornecem classes poderosas ou modelos de classe de array. Eles geralmente implementam o conceito de compartilhamento implícito de dados com contagem de referência e cópia na gravação. Portanto, o retorno pelo valor de tais matrizes de funções é executado de forma muito eficiente e está associado a um consumo mínimo de recursos de computação.

Recomendado: