Zum Inhalt springen

Struktur-Array dynamisch erweitern


Magoo

Empfohlene Beiträge

Hallo,

ich habe folgenden Programmcode


struct basis {

     int wert1;

     int wert2;

     int wert3;

} *Datenbasis;


int main() {

     // 1. ermitteln der Anzahl erfolgt hier irgendwo und wird in int-Variablen x gespeichert


     Datenbasis = new basis[x];


     // dann passiert noch mehr


     // 2. kann man hier noch mehr speicher reservieren?


     // hier wird gerechnet


     // 3. Speicher freigeben

     delete []Datenbasis;

}

Ist es möglich, an Stelle 2. noch mehr Speicher für weitere Elemente zu reservieren? Wenn ja, wie?

Ich kenne mich mit C++ und dynamische Speicherreservierung nicht so gut aus.

Wäre schön, wenn mir jemand helfen könnte!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du new und delete benutzt hast du nur die Möglichkeit dein Array auszulagern, es neu und größer anzulegen und dann die Daten von der Auslagerung zurück zu kopieren.

Wenn du malloc und free verwendest, nimmt dir realloc die arbeit ab.

Oder halt wie Klotzkopp sagt ein vector der die komplette Arbeit abnimmt.

EDIT: Ein Beispiel für den vector kann ich nicht liefern da ich ihn nur einmal verwendet habe. Über die Suche müsstest du aber was finden.

Link zu diesem Kommentar
Auf anderen Seiten teilen


#include <vector>

struct basis {
int wert1;
int wert2;
int wert3;
};

std::vector<basis> Datenbasis;

int main() {
// 1. ermitteln der Anzahl erfolgt hier irgendwo und wird in int-Variablen x gespeichert

Datenbasis.resize(x);

// dann passiert noch mehr

// 2. kann man hier noch mehr speicher reservieren?
Datenbasis.resize(neue_groesse);

// hier wird gerechnet

// 3. Speicher freigeben
// fällt weg, macht der vector
}[/CODE]

Statt resize kannst du auch neue Elemente mit push_back anhängen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...