Kellerspeicher C |
08.12.2015, 15:34 | Auf diesen Beitrag antworten » | |||||||||||||||
Grule9 | Kellerspeicher C Meine Frage: Ich möchte einen Kellerspeicher in C bauen. Die Zahlen (integer reichen) sollen im Heap gespeichert werden, deshalb möchte ich Zeiger benutzen. Bei push(x) soll die Zahl x im Heap gespeichert werden und bei pop() die letzte gespeicherte Zahl aus push() ausgegegeben werden. Meine Ideen: Idee bei der Funktion push(x): int push(x){ *zeiger = malloc(sizeof(int); *zeiger = x; } Wie kann ich dieses x nun in einer anderen Funktion pop() aufrufen? ich habe *zeiger ja nur in push. Bisheriger Quelltext: #include <stdio.h> #include <stdlib.h> int push(x){ int *zeiger = malloc(sizeof(int)); *zeiger = x; } int pop(void){ printf("%d\n", ???); } int main(void) { push(5); push(20); pop(); return EXIT_SUCCESS; } |
|||||||||||||||
|
||||||||||||||||
08.12.2015, 17:28 | Auf diesen Beitrag antworten » | |||||||||||||||
eulerscheZahl | Sollte laufen. Es fehlen noch Prüfungen, ob malloc Speicher reservieren kann und ob bei pop noch etwas auf dem Stack steht.
|
|||||||||||||||
08.12.2015, 18:25 | Auf diesen Beitrag antworten » | |||||||||||||||
Grul9 | Dankeschön |
|||||||||||||||
09.12.2015, 14:19 | Auf diesen Beitrag antworten » | |||||||||||||||
Karlito | Hallo Grul9, mein Ansatz ist ein wenig schwieriger zu verstehen, sollte aber für's Lernen gut sein. Es ist noch eher am echten Stack angelehnt, da hier auch mit einem Adressbereich gearbeitet wird und nicht mit einer verketteten Liste. Auch hier alles ohne Prüfung. main.c:
stack.h
stack.c:
Falls es dazu Fragen gibt, gerne hier stellen. Gruß, Karlito |
|||||||||||||||
Anzeige | ||||||||||||||||
|
|
Verwandte Themen
Die Beliebtesten » |
Die Größten » |
Die Neuesten » |