diff --git a/stack.c b/stack.c index 0b2834d..648d2eb 100644 --- a/stack.c +++ b/stack.c @@ -26,7 +26,7 @@ StackNode *push(StackNode *stack, void *data) // freed by caller.) StackNode *pop(StackNode *stack) { - // überprüfen ob stack einen wert besitzt data = wert next = node + // überprüfen ob stack einen wert besitzt if (!stack) return NULL; //oberstes element raussuchen und dieses auf free setzen @@ -42,12 +42,22 @@ StackNode *pop(StackNode *stack) void *top(StackNode *stack) { //funktions return ist oberstes stack element + if (!stack) + return NULL; + + StackNode *next = stack->data; + return next; } // Clears stack and releases all memory. void clearStack(StackNode *stack) { - //überprüfen ob die malloc speicher enthält (also nicht free ist) - //komplett malloc auf free setzen - //stack returnen + + while(stack != NULL) + { + StackNode *next = stack->next; + free(stack); + stack = next; + } + } \ No newline at end of file