Herakles
Profifragensteller
Moin!
Ich habe einen LIFO-Speicher, der als statischer Array mit 500 Elementen in einem C-Programm realisiert ist.
Nun möchte ich im Falle des Überlaufs des LIFO(also wenn ein neues Element hinzugefügt werden soll, der Stapelspeicher aber voll ist) das älteste Element löschen und dafür das neuste hinzufügen.
Meiner Logik zufolge ist so ein LIFO aber nur dafür gedacht, das oberste Element des Stapelspeichers abzuarbeiten - eben "Last in, First out".
Ich könnten nun auch hergehen und die Inhalte aller Elemente des Arrays in das jeweils nächste kopieren, damit letztendlich ein Element frei wird, aber das wäre schon sehr viele Kopieroperation und das möchte ich dem Rechner eigentlich ersparen(ich arbeite auf einer sehr kleinen, "schwachbrüstigen" Hardware).
Ein "free()" und dann "malloc()" verbietet sich aufgrund des statischen Arrays...
Habe ich nur einen Knoten im Kopf oder gibt es hier wirklich ein Problem?
Habt Dank für jeden Tipp!
Herakles
Ich habe einen LIFO-Speicher, der als statischer Array mit 500 Elementen in einem C-Programm realisiert ist.
Nun möchte ich im Falle des Überlaufs des LIFO(also wenn ein neues Element hinzugefügt werden soll, der Stapelspeicher aber voll ist) das älteste Element löschen und dafür das neuste hinzufügen.
Meiner Logik zufolge ist so ein LIFO aber nur dafür gedacht, das oberste Element des Stapelspeichers abzuarbeiten - eben "Last in, First out".
Ich könnten nun auch hergehen und die Inhalte aller Elemente des Arrays in das jeweils nächste kopieren, damit letztendlich ein Element frei wird, aber das wäre schon sehr viele Kopieroperation und das möchte ich dem Rechner eigentlich ersparen(ich arbeite auf einer sehr kleinen, "schwachbrüstigen" Hardware).
Ein "free()" und dann "malloc()" verbietet sich aufgrund des statischen Arrays...
Habe ich nur einen Knoten im Kopf oder gibt es hier wirklich ein Problem?
Habt Dank für jeden Tipp!
Herakles