Array erweitern?
-
Hallo!
Ich habe ein HBITMAP Array, dass ich mit Werten füllen möchte. Das Programm soll einen Ordner mit Bitmaps Datei für Datei auslesen und diese nach und nach in das Array schreiben. Die Anzahl der Dateien ist dabei jedoch nicht bekannt, deswegen muss ich das Array nach und nach erweitern.
Weiß da jemand eine Lösung?
Gruß veryxRV
EDIT: Was evtl. noch ginge, wäre dass ich vorher die Anzahl der Dateien ermittle und diese dann als Array-Größe angebe... Aber das scheint ja auch nicht so einfach zu sein ("Konstanter Ausdruck erwartet")!
-
Für letzteres würde ich Arrays auf dem Heap benutzen, aber am besten sein wird wohl std::vector und ähnliches.
-
Hm... In C# hätte ich es mit einem Enumerator gemacht. Geht das auch auf ähnliche Weise in C++?
-
Hallo
Ich weiß zwar nicht was Enumeratoren in C# bedeuten aber in C/C++ sind enums jedenfalls nicht für dein Problem geeignet. Sondern wie Kenny schon sagte std::vector. Schau ins Forummagazin, dort gibt es einen Artikel zu den STl-Containern.
bis bald
akari
-
nja geh halt, wenn du nicht std::vector usw nutzen willst und schreib dir ne Funktion resize... da musst du einfach einen um 1 größeren Array erstellen und da dann mit memcpy einfach die Daten des alten Arrays reinkopieren ... und dann löscht du den alten ... fertig

-
Du kannst das array auch dynamisch anlegen, dann muss es kein konstanter Wert sein
mfg kaffee
-
kaffee schrieb:
Du kannst das array auch dynamisch anlegen, dann muss es kein konstanter Wert sein
mfg kaffee
Und wie mache ich das?
-
void foo(int n) { int* a = new int[n]; // ... delete [] a; }
-
Nja aber wenn du immerwieder neue Bilder hinzulädst und die Anzahl derer nicht weißt ... kommst du nicht drum herum std::vector odg. zu nutzen oder dir selbst schnell ne rezise funktion zu schreiben, die dann einfach einen größeren array anlegt und die daten rüberkopiert ...