es nicht so klingt, wenn Sie wirklich „Speichern von Werten in die Struktur“ wollen, stattdessen wollen Sie eine Folge von unabhängigen Struktur Instanzen speichern; eine für jede Benutzereingabe.
Die drei grundlegenden Möglichkeiten, dies zu tun sind:
- Ein Array, dessen Größe auswählen, die Sie bei der Kompilierung-Zeit. Es sollte nicht zu schwer sein, es „groß genug“ zu machen für einen vernünftigen Eingang
- Ein Array, dessen Größe festgelegt Sie (und dann wachsen) zur Laufzeit
- eine verknüpfte Liste von Strukturinstanzen
Welches zu bevorzugen ist hängt davon ab, was Sie für am einfachsten halten. Wenn es möglich ist, ist ein statisches Erscheinungsbild immer am einfachsten. Sie können ganz einfach auf globaler Ebene so etwas wie
struct movement movements[10000];
haben, dies kostet nur etwa 120 KB auf einem 64-Bit-System. Beachten Sie jedoch, dass dies nicht Speicher für die direction
Strings enthält; wenn diejenigen, immer von „rechts“ gewählt und „links“ (und vielleicht auch „nach oben“/„nach unten“ auch) könnte man es als Aufzählungs repräsentiert statt:
enum direction { DIRECTION_LEFT = 0, DIRECTION_RIGHT, DIRECTION_UP, DIRECTION_DOWN };
Dies wird die Struktur „self-contained machen "und (auf 64-Bit-Systemen) kleiner, da die Aufzählung kleiner als ein Zeiger ist.
Dynamisch wachsen ein Array mit ist nicht zu schwer, Sie könnten das leicht suchen, wie es oft verwendet wird.
A [verknüpfte Liste] (http://www.thegeekstuff.com/2012/08/c-linked-list- Beispiel /) kann helfen –
Seien Sie gewarnt, dass über Ihnen * nicht * "Elemente in die Struktur hinzufügen" in keiner Weise. Sie erstellen zwei separate Strukturinstanzen, die nichts miteinander zu tun haben. – usr2564301
Eine Reihe von Strukturen? – RoadRunner