Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » string[5000]

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ] [ 4 ]
000
25.07.2004, 12:44 Uhr
RedEagle



Wie machen ich am besten ein
string var[5000]; ???
genau so, oder macht man das bei Größeren Arrays anders??
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.07.2004, 12:56 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


mach halt ein dynamisches array, dann brauchst du nur soviel speicher wie du wirklich benötigst
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.07.2004, 13:02 Uhr
Pablo
Supertux
(Operator)


was willst du machen?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
25.07.2004, 14:40 Uhr
RedEagle



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 RedEagle

Dieser Post wurde am 25.07.2004 um 14:48 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
25.07.2004, 14:53 Uhr
RedEagle




C++:
string var = new string[5000];

string var2[5000];


wo ist da der unterschied??
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.07.2004, 15:25 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


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 { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
25.07.2004, 15:27 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


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ßbrote

Dieser Post wurde am 25.07.2004 um 15:27 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
25.07.2004, 15:29 Uhr
Pablo
Supertux
(Operator)


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!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
25.07.2004, 15:32 Uhr
(un)wissender
Niveauwart


@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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
25.07.2004, 15:36 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


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ßbrote

Dieser Post wurde am 25.07.2004 um 15:37 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ] [ 4 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: