Hallo Leute,
ich möchte in C einen Buffer definieren.
Dabei lese ich aufsteigende Zahlen in den Buffer, der eine Länge von 10 Werten haben soll.
Ist der buffer voll (also es wurden 10 Zahlen eingelesen), so soll per Programmaufruf der kleinste Wert (also der, der ganz links steht) entfernt werden, und der buffer nach rechts um einen wert erweitert werden, damit man wieder auf die buffergröße 10 kommt.
Hier mal als kleine "Skitze"
1. Lese Zahlen ein:
Leerer Buffer:
[ ]|[ ]|[ ]|[ ]|[ ]|[ ]|[ ]|[ ]|[ ]|[ ]
Fülle mit zahlen aufsteigend:
[1]|[2]|[3]|[4]|[5]|[6]|[7]|[8]|[9]|[10]
2. Um "11" einzulesen, lösche "1" und füge "11" hinten an:
Ausgangssituartion:
[1]|[2]|[3]|[4]|[5]|[6]|[7]|[8]|[9]|[10]
Lösche "1":
[2]|[3]|[4]|[5]|[6]|[7]|[8]|[9]|[10]|[ ]
Füge "11" ein:
[2]|[3]|[4]|[5]|[6]|[7]|[8]|[9]|[10]|[11]
Wie könnte man sowas realisieren ?
Ich habe das mit einem Array versucht aber das hat nicht funktioniert.
Ich denke das müsste man mittels Zeiger auf dem Speicher realisieren aber ich bekomme da nichts schönes hin.
Kann mir jemand sagen wie ich so einen "Bereich" definiere mit meinen Funktionen "entferne vorne" und "füge hinten" wieder an ? Oder nur einen Hinweis wie man einen "dynamischen" Buffer der Länge 10 definiert.
Danke schonmal
ich möchte in C einen Buffer definieren.
Dabei lese ich aufsteigende Zahlen in den Buffer, der eine Länge von 10 Werten haben soll.
Ist der buffer voll (also es wurden 10 Zahlen eingelesen), so soll per Programmaufruf der kleinste Wert (also der, der ganz links steht) entfernt werden, und der buffer nach rechts um einen wert erweitert werden, damit man wieder auf die buffergröße 10 kommt.
Hier mal als kleine "Skitze"
1. Lese Zahlen ein:
Leerer Buffer:
[ ]|[ ]|[ ]|[ ]|[ ]|[ ]|[ ]|[ ]|[ ]|[ ]
Fülle mit zahlen aufsteigend:
[1]|[2]|[3]|[4]|[5]|[6]|[7]|[8]|[9]|[10]
2. Um "11" einzulesen, lösche "1" und füge "11" hinten an:
Ausgangssituartion:
[1]|[2]|[3]|[4]|[5]|[6]|[7]|[8]|[9]|[10]
Lösche "1":
[2]|[3]|[4]|[5]|[6]|[7]|[8]|[9]|[10]|[ ]
Füge "11" ein:
[2]|[3]|[4]|[5]|[6]|[7]|[8]|[9]|[10]|[11]
Wie könnte man sowas realisieren ?
Ich habe das mit einem Array versucht aber das hat nicht funktioniert.
Ich denke das müsste man mittels Zeiger auf dem Speicher realisieren aber ich bekomme da nichts schönes hin.
Kann mir jemand sagen wie ich so einen "Bereich" definiere mit meinen Funktionen "entferne vorne" und "füge hinten" wieder an ? Oder nur einen Hinweis wie man einen "dynamischen" Buffer der Länge 10 definiert.
Danke schonmal