Die dynamische Array von Strukturen C ++

Die dynamische Array von Strukturen C ++
5 (100%) 2 Stimmen





динамический массив структур

Die dynamische Array von Strukturen analysieren wir das Beispiel. Wir haben folgendes Problem zu lösen: gibt der Benutzer Daten über die Sponsoren des Projekts. Nämlich – Name, den Namen und die Höhe der Spenden. Nach jeder Dateneingabe Anwendung fragt: weiterhin Schreib- oder nicht. Jedes Mal, wenn der Benutzer “vorgehen” – es ist notwendig, ein Stück Speicher hat eine einzelne Struktur zuzuteilen. Somit ist eine dynamische Anordnung von Strukturen wachsen, bis der Benutzer aussetzt Eintrag. Nach der Eingabe, zeigen eine Tabelle mit Informationen über die Sponsoren auf dem Bildschirm.

Bestimmung der Struktur ist in Linien 5 – 10. Sie kündigte drei Elemente Name, Familien-oder Nachname, Summe. Im Folgenden Funktionsprototypen deklariert, notwendig, das Problem zu lösen,. Die erste Funktion Sponsor* AddStruct(Sponsor* Obj, const int Menge); wird Speicher für die Elemente eines Arrays von Strukturen zuweisen. zweite Leere setData(Sponsor* Obj, const int Menge); verantwortlich ist, Daten in eine Struktur zum Eingeben. dritte Leere showdata(const Sponsor* Obj, const int Menge); – Er zeigt alle Daten in einer Tabelle. Definitionen dieser Funktionen werden unten diskutiert.

Um ein dynamisches Array von Strukturen schaffen, muss, wie zu erstellen üblichen dynamischen Array, deklarieren einen Zeiger. Nur statt der eingebauten Typ, die die Struktur eines Griffes zu spezifizieren – Reihe 20. Dieser Zeiger ist nichts auf Punkte. Es wäre möglich, Speicher für ein Array von Strukturen zuweisen auf einmal. beispielsweise:

динамический массив структур

Aber wir werden eine flexiblere Zuordnung von Speicher für die dynamische Anordnung von Strukturen organisieren – es wird nach Bedarf zugewiesen werden. Es gibt einen Sponsor – Es ordnet Speicher für eine Struktur. Es gibt 3 Sponsor – Speicher wird zuerst unter einer Struktur zugeordnet, dann eine zweite und dann eine dritte. Alles hängt davon ab, – entscheidet, ob der Benutzer weiterhin eingeben.

Linien 21 – 22, deklarierten Variablen sponsorAmount – zählen die Anzahl der Sponsoren und Ja oder Nein – Benutzerauswahl (fortsetzen oder abbrechen Eintrag).

Linien 24 – 34: hier ist der Zyklus tun, während. Es wird ausgeführt, bis, bis der Benutzer braucht, um Daten einzugeben. On line 26 rufen die, die reserviert Speicher für die Struktur Unsere Sponsoren = AddStruct(Unsere Sponsoren, sponsorAmount); Gesenkte seiner Definition in den Zeilen 42 – 61. Hier kann gesehen werden,, daß diese Funktion einen Zeiger auf eine Struktur zurückkehren Sponsor. Es dauert zwei Parameter – ein Zeiger auf die Struktur und die Anzahl der Strukturen. Wenn es zum ersten Mal aufgerufen – es wird eine Mitteilung senden in Main Zeiger Unsere Sponsoren und variablen sponsorAmount, die Null. Im Funktionsblock wird ausgeführt ob – Es ordnet Speicher für eine Struktur (Linien 44 – 47). Dann wird die Funktion eine Adresse zurück (Zeiger) Dieser Speicherbereich, und es wird in aufgezeichnet werden Unsere Sponsoren – Reihe 26.

On line 27 rufen die, die erlauben wird, eine Datenstruktur machen. Seine Definition ist in den Zeilen 63 – 73. Nach der Eingabe von Daten, Variable sponsorAmount erhöht. Der Benutzer wird aufgefordert, eine Wahl zu treffen – weiterhin betreten oder verlassen die. Wenn Sie weiterhin – wieder wird die Funktion aufgerufen AddStruct().




Es muss daran erinnert werden,, der Zeiger Unsere Sponsoren bereits bezieht sich auf die Speicherstelle mit den aufgezeichneten Daten. Also nicht nur erhalten perevydelit Speicher. Zuerst müssen Sie darauf achten, Daten zu retten. Schauen Sie sich den Block sonst Linien 48 – 59. On line 50 erstellen Sie eine temporäre Zeiger. Darunter weisen Speicher für Menge + 1 Strukturen (dh. mehr als eine Struktur, was nahm Funktion). Als nächstes kopieren Sie die Daten aus dem empfangenen Objekt. Letzte Objekt Array-Strukturen tempObj ostanetsâ nezapolnennym. Wenn die Daten kopiert, gibt Speicher frei Obj – Reihe 57 und schreiben in der neuen Adressenzeiger. Er wird in den Speicher verweisen, in denen Daten und den zusätzlichen zugewiesenen Speicherbereich gibt es für das Füllen neue Daten gespeichert.

Wiederum wird die Funktion aufgerufen setData(), die es erlauben, die Daten in einem neuen speziellen Bereich der Lagerung zu machen – das letzte Element einer Anordnung von Strukturen.

Wenn entscheidet ein Benutzer nicht mehr zur Eingabe von Daten – er drückt Null. Nach diesem Arbeitsfunktion showdata() und der Bildschirm wird eine Tabelle mit den Daten aus allen Strukturen von dynamischen Arrays angezeigt werden. Am Ende des Programms nicht vergessen, um Speicher frei, das nimmt ein dynamisches Array von Strukturen.

Ergebnis – Eingang:

c ++ dynamische Array von Strukturen

Tabelle:

c ++ dynamische Array von Strukturen

Zur Unterstützung unserer Website – klicken Sie auf das Sparschwein und wählen Sie eine beliebige bequeme Weise.

Newsletter neue Lektionen über die Programmierung:

Hinterlasse eine Antwort

Platz Code in Tags: <pre class="lang:c ++ dekodieren:true ">DEIN CODE</Vor>