daten im speicher



  • ich möchte meine daten im speicher hintereinander weg ablegen.
    (damit ich später einen größeren block davon lesen kann)

    es ist mir dabei egal was für typen die daten haben.

    kann ich das anders als mit einem struct lösen?
    struct wär nicht gut, weil ich da wissen müsste was für daten ich habe.



  • Ich empfehle einen Vektor. Allerdings mußt du dazu beim Compilieren wissen, welchen Datentyp du speichern willst.

    Zur Not kannst du auch einem char* per new[] genügend Paltz zuweisen und darauf arbeiten, aber das ist aufwendiger und fehleranfälliger.



  • erstmal danke für den vorschlag.

    problem ist jedoch folgendes:

    die datentypen kommen gemischt aus einer datenbank an. z.B.

    ein int ein string ein paar longs, wieder ein int, noch 4 ints
    und ich weiss leider nicht in welcher reihenfolge.

    hatte auch schon an ein char*, nur weiss ich zu beginn nicht einmal wie viele daten ich empfange.
    da müsste ich dann immer speicher nachallokieren.
    oder wenn der speicher voll ist noch einen neuen anlegen.



  • Dann (meine spontane Überlegung) solltest du eine Struktur nach dem Format

    struct Data
    {
        int type; // eindeutige Nummer, die dem Typ zugeordnet wird
        void* data; // ein void-Zeiger kann auf alles zeigen
    };
    

    anlegen und diese z. B. in einem Vector (oder einer vergleichbaren Struktur) speichern.



  • Mit was für einer Funktion bekommst du denn die einzelnen Daten? Und wäre es möglich, jeden ankommenden Wert direkt zu verarbeiten?



  • CStoll (off) schrieb:

    Mit was für einer Funktion bekommst du denn die einzelnen Daten? Und wäre es möglich, jeden ankommenden Wert direkt zu verarbeiten?

    ich kann die daten leider erst weiterverarbeiten, wenn ich sie komplett zusammen habe.

    wolfgke schrieb:

    Dann (meine spontane Überlegung) solltest du eine Struktur nach dem Format

    struct Data
    {
        int type; // eindeutige Nummer, die dem Typ zugeordnet wird
        void* data; // ein void-Zeiger kann auf alles zeigen
    };
    

    anlegen und diese z. B. in einem Vector (oder einer vergleichbaren Struktur) speichern.

    den ansatz find ich ganz gut. könnte sowas ähnliches werden


Anmelden zum Antworten