ich muss ein dynamisches array erzeugen. anhand einer WORD variable muss ich immer wieder auf einen bereich zugreifen können. habe mitbekommen, dass dies über keys gehen soll, bin aber noch net drauf gestoßen.
also z.b. bekomme 0x2013 mit einem chararray. dann muss ich einen bereich anlegen. wenn dann 0x2014 kommt auch wieder. und wenn dann nochmal 0x2013 kommt, muss ich das chararray um den nun angehängten chararray erweitern. das chararray kann nur 100byte lang werden.
wenn ich es statisch anlegen würde wäre es ja kein problem, jedoch würde ich das array lieber dynamisch anlegen.
danke schonmal gruß pitrie -- Gruß Steff ___ Der Optimist sieht in jedem Problem eine Aufgabe. Der Pessimist sieht in jeder Aufgabe ein Problem. http://autoexport.sunbird-kalender.de
Ich habe das Problem nicht verstanden. Wenn es einfach darum geht, ein Array oder einen String zu haben, dessen Größe veränderlich ist, dann benutze std::vector , std::string oder einen anderen Container aus der C++-Standardbibliothek.
ich bekomme immer eine ID (WORD) und daten (char []) gleichzeitig. nun muss ich die daten der gleichen IDs speichern d.h. als erstes bekomme ich die ID 10 mit den daten 5A67B dann bekomme ich die ID 5 mit den daten 6F8DA beide muss ich speichern als drittes bekomme ich wieder die ID 10 mit daten E3EE5 ---> so dass nun unter der ID 10 die Daten 5A67BE3EE5 stehen habe usw...
so wie bei protokollen (bsp. tcp) segmentiertes wieder zusammenfügen (jedoch kommen sie hier anders als bei tcp in der richtigen reihenfolge innerhalb eines IDs an
gruß pitrie -- Gruß Steff ___ Der Optimist sieht in jedem Problem eine Aufgabe. Der Pessimist sieht in jeder Aufgabe ein Problem. http://autoexport.sunbird-kalender.de
Wird dieses Array nur gefüllt ? Oder auch mal wieder geleert oder Einträge gelöscht ?
So wie Du es beschrieben hast, geht das natürlich. Nimm erstmal eine std::map mit WORD als Schlüssel und std::string als value. Etwa so:
C++:
std::map<WORD, std::string> theMap;
void insert( WORD id, constchar* data ) { theMap[ id ] += data; }
Der Operator [] gibt eine Referenz auf den Wert zurück, der zum Schlüssel id gehört. Falls so ein Eintrag noch nicht da ist, wird er eingefügt. In jedem Fall wird mit "+=" an den bestehenden oder neuen Eintrag angehängt.