Daten in Array abspeichern



  • Hallo,

    ich stecke bei einem Programm fest und komme nicht mehr weiter...

    zuerst definierte ich eine Struktur

    struct fahrdata{
    	bool aktion;
    	int distanz;
    	unsigned char geschwindigkeit;
    	char fehler;
    } daten[30];
    

    Danach initialisiere ich diese Struktur in einem Array (daten[30])

    Danach erstelle ich ein neues 2D-Array und speichere 30 Werte rein

    int array[30][4] = {
    {1,1,100,a,},
    ...
    {30,1,100,r,},
    };
    

    am Schluss fülle ich mein Struktur Array mit den Daten.

    for(i=0; i<30; i++) {
    	daten[i].aktion = array[i, 0];
    	daten[i].distanz = array[i, 1];
    	daten[i].geschwindigkeit = array[i, 2];
    	daten[i].fehler = foobar;
    }
    

    dieser Code scheint zu funktionieren, jedoch ist er nicht wahnsinnig schlau. Die Daten für den Array (array) habe ich immer schon vor der Ausführung des Programmes, deshalb könnte ich den Array auch von einer externen Datei einlesen, oder bereits die Daten in den Struktur-Array (daten[30]) direkt reinspeichern.
    Was gibt es in C alles noch für Möglichkeiten zum einen Array mit Daten zu füllen?



  • Wenn du die Array-Daten bereits zur Compile-Zeit hast, solltest du das Hilfs-Array weglassen - du kannst auch ein Array von structs per Initialisierungsliste vollstopfen:

    struct fahrdata daten[30] =
    {
      {1,1,100,a},
      ...
      {30,1,100,r},
    };
    

    (wenn das Hilfsarray erst zur Laufzeit befüllt werden soll, dann definier' es lieber gleich als struct-Array und übertrag die Daten per memcpy() in dein Ziel-Array - oder füll es direkt auf, so wie du deine Daten erhältst)


Anmelden zum Antworten