So Geben Sie Ein Array Zurück

Inhaltsverzeichnis:

So Geben Sie Ein Array Zurück
So Geben Sie Ein Array Zurück

Video: So Geben Sie Ein Array Zurück

Video: So Geben Sie Ein Array Zurück
Video: Wie mischt man das Array? JavaScript 2024, Kann
Anonim

Arrays sind eine der einfachsten Formen der strukturierten Datenspeicherung. Da unteilbare Speicherbereiche zum Speichern von eindimensionalen Arrays allokiert werden und die meisten Programmiersprachen syntaktische Konstrukte für ihre Deklaration haben, werden sie intensiv als Puffer verwendet, um große Informationsmengen an verschiedene (einschließlich Bibliotheks-) Funktionen zu übertragen. Funktionen wiederum müssen manchmal ein Array zurückgeben.

So geben Sie ein Array zurück
So geben Sie ein Array zurück

Notwendig

  • - Texteditor;
  • - C- oder C++-Compiler und -Linker.

Anweisungen

Schritt 1

Geben Sie Daten von einer Funktion oder Methode zurück, indem Sie sie in ein Array mit fester Länge platzieren, das vom Aufrufer zugewiesen und als Verweis übergeben wird. Definieren Sie den entsprechenden Datentyp, zum Beispiel: typedef int t_array10 [10]; Verwenden Sie ihn in der Deklaration und Implementierung der erforderlichen Funktion oder Methode: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Aufruf entsprechend: int aNumbers [10]; ReturnArray (aNumbers); Der Nachteil dieser Methode ist, dass die Länge des Arrays fest ist.

Schritt 2

Geben Sie die Array-Daten zurück, indem Sie sie in einen vom Aufrufer zugewiesenen Ausgabepuffer platzieren, der per Zeiger übergeben wird. Der Prototyp einer Funktion oder Methode kann einen Parameter enthalten, der sowohl in Array-Notation ohne Größenangabe deklariert ist: void ReturnArray (int anArray , int nSize); oder als Zeiger: void ReturnArray (int * pnArray, int nSize); In beiden Fällen kann der Identifier-Parameter in Array-Notation verwendet werden: void ReturnArray (int * pnArray, int nSize) {for (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // call int aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Diese Methode, Arrays an Funktionen zu übergeben und von diesen Arraydaten zurückzugeben, wird in den allermeisten Fällen bei der Entwicklung von C-Programmen verwendet Funktionen und Methoden, die auf diese Weise Daten annehmen und zurückgeben, müssen in der Regel einen zusätzlichen Parameter besitzen, über den die tatsächliche Größe des Puffers übergeben wird.

Schritt 3

Gibt ein Array zurück, das in einer Funktion oder Methode erstellt wurde. Formal sollte in diesem Fall kein Array zurückgegeben werden, sondern ein Zeiger auf sein erstes Element: int * ReturnArray () {int * pnArray = new int [10]; // mit pnArray arbeiten return pnArray;} // einen Zeiger auf das erstellte Array erhalten int * pnNumbers = ReturnArray (); // use delete pnNumbers; // delete Diese Methode hat einige Einschränkungen. Das Array muss sich also im Heap befinden. Außerdem muss das Löschen mit der Methode erfolgen, die der Erstellung entspricht (löschen bei Verwendung von new, free for malloc usw.).

Schritt 4

Verwenden Sie Containerklassen, um Arrays bei der Entwicklung von C++-Programmen bequem zurückzugeben. Ein Beispiel für das Erstellen und Zurückgeben eines Arrays, das ein Objekt der Vektor-Template-Klasse der C++-Standard-Template-Bibliothek für int ist, könnte wie folgt aussehen: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; return oArray;} std:: vector oArray = ReturnArray(); Beachten Sie, dass die meisten gängigen Frameworks leistungsstarke Klassen oder Array-Klassenvorlagen bereitstellen. Sie implementieren häufig das Konzept der impliziten Datenfreigabe mit Referenzzählung und Copy-on-Write. Daher wird die Rückgabe nach Wert solcher Arrays von Funktionen sehr effizient durchgeführt und ist mit einem minimalen Verbrauch von Rechenressourcen verbunden.

Empfohlen: