Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Nahar Senior JLI'ler
Alter: 36 Anmeldedatum: 16.07.2003 Beiträge: 267
Medaillen: Keine
|
Verfasst am: 03.01.2004, 12:51 Titel: dynamisch neue arrayelemente erzeugen |
|
|
Hi,
Ich hab ne echte Idiotenfrage (glaub ich), aber ich komm´nicht drauf.
Ich will einzelne Knoten aus einer Datei Laden, weiß abern icht wieviele drin sind. Deßhalb mus ich dynamisch neue Knoten erzeugen
Code: | struct node
{
int bla;
*node l,r;
...
};
|
Jetzt brauch ich ja aber Pointer, um auf die Knoten zuzugreifen können.
Da ich abern icht weiß wieviele Knoten das werden, und im Programm dann auch noch welche dazu kommen, kann ich nicht fest sagen
Code: |
typedef node Knoten;
Knoten* bla;
bla = new Knoten[const int];
|
sondern muss an dieses Handle immer neue anhängen.Wenn ich aber
Code: |
bla = new Knoten[5];
...
bla = new Knoten[6];
|
mach´ dann hab ich ein Memory Leak; also habe ich probiert es so zu machen:
Code: |
Knoten* bla[6];
bla[6] = new Knoten;
|
Das tut aber auch nicht, weil ich ja für dei Handles einen konstanten Wert brauche, der auch irgedwann berschritten ist.
Langer Rede kurzer Sinn: Was soll ich tun? |
|
Nach oben |
|
|
Kampfhund Super JLI'ler
Alter: 42 Anmeldedatum: 20.07.2002 Beiträge: 408
Medaillen: Keine
|
Verfasst am: 03.01.2004, 13:04 Titel: |
|
|
du kannst entweder einen STL Vector benutzen oder
du kannst realloc() benutzen.
Realloc() nimmt dein vorhandenes Array und vergrößert es.
Der STL Vector mach afaik das gleiche, bietet aber, da es eine template klasse ist, zusätzliche funktionen. |
|
Nach oben |
|
|
Nahar Senior JLI'ler
Alter: 36 Anmeldedatum: 16.07.2003 Beiträge: 267
Medaillen: Keine
|
Verfasst am: 03.01.2004, 13:08 Titel: |
|
|
Gut, ich geh mal MSDNnen |
|
Nach oben |
|
|
MadMax82 Mini JLI'ler
Anmeldedatum: 31.12.2003 Beiträge: 9
Medaillen: Keine
|
Verfasst am: 04.01.2004, 22:23 Titel: |
|
|
Vector ist in diesem Fall doch unsinn wen schon STL dan wenigstens List. Kannst dir auch einfach selbst schreiben.
Wen du Vector benutzt wird das Array ständig verworfen und neu erstellt.Eine Liste ist doch gerade daür prädestiniert um Knoten aufzunehmen |
|
Nach oben |
|
|
Hasenfuß Senior JLI'ler
Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 05.01.2004, 09:12 Titel: |
|
|
Je nachdem wie du die Knoten abspeicherst könntest du ja auch erst alle Knoten zählen, dann diesen Wert zuerst abspeichern und danach die Knoten. Dann liest du zuerst den Wert aus und erstellst ein Array das groß genug ist. |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 05.01.2004, 10:18 Titel: |
|
|
Zitat: | Ich will einzelne Knoten aus einer Datei Laden, weiß abern icht wieviele drin sind. |
anzahl_der_knoten = datei_groesse / groesse_der_datenstruktur _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
Hasenfuß Senior JLI'ler
Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 05.01.2004, 10:28 Titel: |
|
|
oder so |
|
Nach oben |
|
|
|