diff --git a/bintree.c b/bintree.c index 0c5b453..5cf82a9 100644 --- a/bintree.c +++ b/bintree.c @@ -1,4 +1,4 @@ -t #include +#include #include "stack.h" #include "bintree.h" diff --git a/stack.c b/stack.c index dbda947..930fc2d 100644 --- a/stack.c +++ b/stack.c @@ -69,11 +69,15 @@ StackNode *pop(StackNode *stack) { void *top(StackNode *stack) { return stack != NULL ? stack->data : NULL; } // Clears stack and releases all memory. -void *clearStack(StackNode *stack) { +void clearStack(StackNode *stack) { while (stack != NULL) { StackNode *next = stack->next; + stack->data = NULL; + stack->prev = NULL; + stack->next = NULL; + free(stack); stack = next; } diff --git a/stack.h b/stack.h index fb1cd04..c7bbef4 100644 --- a/stack.h +++ b/stack.h @@ -14,7 +14,7 @@ typedef struct StackNode { void *data; struct StackNode *next; struct StackNode *prev; - + } StackNode; StackNode *createNode(void *data); @@ -30,6 +30,6 @@ StackNode *pop(StackNode *stack); void *top(StackNode *stack); // Clears stack and releases all memory. -StackNode *clearStack(StackNode *stack); +void clearStack(StackNode *stack); #endif diff --git a/test_stack.c b/test_stack.c index 52ff263..2ad909f 100644 --- a/test_stack.c +++ b/test_stack.c @@ -36,7 +36,7 @@ void test_clearStack(void) { testStack = push(testStack, &testInts[i]); } - testStack = clearStack(testStack); + clearStack(testStack); TEST_ASSERT_NULL(testStack); }