Ich möchte Datei-name aus einem Ordner in das Array speichern, und dann mit Dateinamen aus einem Anderen Ordner vergleichen. In den Ordnern sind mindestens 2000 Datein drin, aber es können noch mehr werden (deshalb 5000).
!!Wie mache ich ein Dynamisches Array?? -- MFG RedEagleDieser Post wurde am 25.07.2004 um 14:48 Uhr von RedEagle editiert.
beim obigen beispiel wird der speicher erst zur laufzeit erzeugt (normalerweise auf dem Heap), beim unteren ist der speicherbereich fest und wird normalerweise auf dem stack erzeugt. -- class God : public ChuckNorris { };
da du c++ nehmen willst empfiehlt sich der verwendung einer stl-containerklasse die dir unter anderem genau dieses problem der speicherverwaltung abnimmt
C++:
std::vector<std::string> mystringarray;
//einfügen eines elemtenes mit mystringarray.push_back(...);
-- ...fleißig wie zwei WeißbroteDieser Post wurde am 25.07.2004 um 15:27 Uhr von Windalf editiert.
der Unterschied, ist dass du mit new dynamisch den Speicher allokiert hast, d.h. du kannst während der Laufzeit die Größe des Array ändern. Und du musst vor dem Ende des Programm oder Funktion mit delete [] den Speicher freigeben.
var[xxx] hat eine feste Größe und du kannst die Größe nicht mehr ändern, und da brauchst du delete [] nicht mehr. -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth!
@Pablo Du kannst die Größe des Arrays zur Laufzeit auch mit dynamischem Speicher nicht ändern. Du kannst nur die Anzahl Bytes, die du allokieren willst, zur Laufzeit verändern, aber nach der Allokierung ist diese fest. -- Wer früher stirbt ist länger tot.Dieser Post wurde am 25.07.2004 um 15:33 Uhr von (un)wissender editiert.
um nochmal auf das dynamische allokieren was dir die anderen vorschlagen zurückzukommen... auch das dynamische allokieren verlangt von dir das du eine betimmte grösse zur laufzeit festlegst... ein realloc das dir selbstständig den speicher vergrössert wenn du mehr brauchen solltest gibt es nicht, da heisst du musst dann mehr allokieren, das alte kopieren und dann löschen... nicht gerade sehr spassig und sehr fehlerfällig.
genau aus diesem grund weil sowas ständig gebraucht wird gibt es fertige klassen die einem diese arbeit abnehmen... wenn du vorher dynamischer speicherallokierung gar nicht gearbeitet hast würd ich dir abraten das gleich zu verwenden sondern erstmal in kleineren testproggies mit rumzuspielen sonst legst du dir die karten... die einfachst möglichkeit ist wie gesagt eine schon fertige klasse wie z.b. std::vector zu verwenden die diese arbeit komplett für dich erledigt und du dich auf deine wesentliche aufgabe konzentrieren kannst...
Bearbeitung:
da war der unwissende dismal wohl schneller
-- ...fleißig wie zwei WeißbroteDieser Post wurde am 25.07.2004 um 15:37 Uhr von Windalf editiert.