Come Restituire Un Array

Sommario:

Come Restituire Un Array
Come Restituire Un Array

Video: Come Restituire Un Array

Video: Come Restituire Un Array
Video: Как перемешать массив? JavaScript 2024, Novembre
Anonim

Gli array sono una delle forme più semplici di archiviazione strutturata dei dati. Poiché le aree di memoria indivisibili sono allocate per la memorizzazione di array unidimensionali e la maggior parte dei linguaggi di programmazione ha costrutti sintattici per la loro dichiarazione, vengono utilizzati intensivamente come buffer per il trasferimento di grandi quantità di informazioni a varie funzioni (inclusa la libreria). A loro volta, le funzioni a volte devono restituire un array.

Come restituire un array
Come restituire un array

Necessario

  • - editor di testo;
  • - Compilatore e linker C o C++.

Istruzioni

Passo 1

Restituisce i dati da una funzione o da un metodo inserendoli in una matrice di lunghezza fissa, allocata dal chiamante e passata per riferimento. Definire il tipo di dati appropriato, ad esempio: typedef int t_array10 [10]; Usalo nella dichiarazione e nell'implementazione della funzione o del metodo richiesto: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Chiama in modo appropriato: int aNumbers [10]; ReturnArray (aNumbers); Lo svantaggio di questo metodo è che la lunghezza dell'array è fissa.

Passo 2

Restituisce i dati dell'array inserendoli in un buffer di output allocato dal chiamante passato dal puntatore. Il prototipo di una funzione o di un metodo può contenere un parametro dichiarato sia nella notazione dell'array senza specifica della dimensione: void ReturnArray (int anArray , int nSize); o come puntatore: void ReturnArray (int * pnArray, int nSize); in entrambi casi, il parametro identificatore può essere utilizzato nella notazione dell'array: void ReturnArray (int * pnArray, int nSize) {for (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // chiama int aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Questo metodo per passare gli array alle funzioni e restituire i dati dell'array da essi viene utilizzato nella stragrande maggioranza dei casi durante lo sviluppo di programmi C. Si noti che funzioni e metodi che accettano e restituiscono dati in questo modo, di regola, devono avere un parametro aggiuntivo attraverso il quale viene passata la dimensione effettiva del buffer.

Passaggio 3

Restituisce un array creato in una funzione o metodo. Formalmente, in questo caso, non dovrebbe essere restituito un array, ma un puntatore al suo primo elemento: int * ReturnArray() {int * pnArray = new int [10]; // lavora con pnArray return pnArray;} // ottiene un puntatore all'array creato int * pnNumbers = ReturnArray (); // usa delete pnNumbers; // delete Questo metodo ha alcune limitazioni. Quindi, l'array deve trovarsi nell'heap. Inoltre, la sua cancellazione deve essere effettuata con il metodo corrispondente alla creazione (cancellare in caso di utilizzo di new, free for malloc, ecc.).

Passaggio 4

Usa le classi contenitore per restituire comodamente gli array durante lo sviluppo di programmi C ++. Un esempio di creazione e restituzione di un array che è un oggetto della classe template vettoriale della libreria di modelli standard C++ specificata per int potrebbe essere il seguente: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; return oArray;} std:: vector oArray = ReturnArray (); Si noti che la maggior parte dei framework più diffusi fornisce classi potenti o modelli di classi di array. Spesso implementano il concetto di condivisione implicita dei dati con conteggio dei riferimenti e copy-on-write. Pertanto, la restituzione per valore di tali array dalle funzioni viene eseguita in modo molto efficiente ed è associata a un consumo minimo di risorse di calcolo.

Consigliato: