Veröffentlicht 13. Oktober 200420 j 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!
13. Oktober 200420 j Wo liegt denn genau der Unterschied? Wo liegt der Vorteil? Ein Beispiel wäre vielleicht nicht schlecht. Wie gesagt, mit C++ kenne ich mich nicht so toll aus. Bin da eher ein Anfänger.
13. Oktober 200420 j 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.
13. Oktober 200420 j #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.
13. Oktober 200420 j Und wie spreche ich dann Wert1, Wert2 und Wert3 an? Im Array gehts ja bekanntlich so: Datenbasis[0].Wert1 = 12; Geht das bei einem Vector nocht genau so?
13. Oktober 200420 j Danke für die schnelle Hilfe. Jetzt funktioniert alles so wie es soll und ich hab wieder was dazu gelernt. :uli
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.