Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » "dynamisches" array mit structs ?

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 <
000
11.08.2004, 11:13 Uhr
mmc20
puss in boots


hallo,
ich brauche in einem programm ein array mit struct's, leider ist die anzahl der elemente erst zur laufzeit bekannt, nun will ich halt nicht "genügend" groß dimensionieren sondern das ganze dynamisch verwalten so ala CList (oder so) ...

wie mach ich das ?

C++:
struct meinstruct {
    CString string1, string2, string3, string4;
    int einInteger, nocheiner;
};
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.08.2004, 11:39 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



C++:
CArray<meinstruct> m_MeinStructArray;

meinstruct test;
test.string1 = "bla";

m_MeinStructArray.Add(test);




Bearbeitung:

Haha war schneller


--
class God : public ChuckNorris { };

Dieser Post wurde am 11.08.2004 um 11:40 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.08.2004, 11:39 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


es gibt da glaube ich auch ein MFC teil für wenn du schon CStrings in dem struct verwendest ist es vieleicht sinnvoller dann auch das MFC-Teil zu nehmen (CArray heisst das glaube ich)
an sonsten ich nehm immer ein vector...

C++:
typedef struct{std::string string1, string2, string3, string4;int einInteger, nocheiner;}meinstruct;  

std::vector<meinstruct> myarray...



du kannst dich auch mit dynamischer allokierung rumschlagen aber wer will das schon...
das geht dann halt so

C++:
meinstruct * myarray;
myarray= new meinstruct*[100];
//hier musst du dir dann immer merken wieviel speicher du noch hast und wieviel davon belegt ist... wenn in dem fall 100 elemnte dicht sind und du noch einen hinzufügst musst du nachallokieren... dies tust du dann indem du dir einen tmp zeiger machst... auf den allokierst du dann den speicher, dann checkst du ob das mit dem allokieren geklappt hat, dann kopierst du alle elemente aus dem alten speicherbereich und gibts diesen danach wieder frei,
dann lässt du den zeiger des arrays auf den neuen speicherbereich zeigen....
insgesamt also alles arbeit die man sich freiwillig nicht geben muss diese arbeit nimmt dir die stl (und diese MFC CArrray komplett ab...)





Bearbeitung:

verdammt flo war schneller...


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 11.08.2004 um 11:40 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
11.08.2004, 12:13 Uhr
mmc20
puss in boots


erstmal riesen dank...

@flo
leider bekomm ich einen fehler: error C2976: 'CArray' : Nicht genuegend Vorlagenargumente

"template< class TYPE, class ARG_TYPE > class CArray : public CObject"
was muss ich als ARG_TYPE angeben ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
11.08.2004, 12:20 Uhr
~Airdamn
Gast


Versuch das mal:
CArray<meinstruct, meinstruct&> m_MeinStructArray;
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
11.08.2004, 12:53 Uhr
mmc20
puss in boots


alles klar ! danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


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: