stack.c test laufen alle

This commit is contained in:
Tobias Kachel 2025-12-05 11:54:23 +01:00
parent 382c36b1b4
commit 74fdcf500f
4 changed files with 15 additions and 13 deletions

View File

@ -1,5 +1,6 @@
CC = gcc CC = gcc
FLAGS = -g -Wall -lm FLAGS = -g -Wall -lm
ASAN_FLAGS = -fsanitize=address
ifeq ($(OS),Windows_NT) ifeq ($(OS),Windows_NT)
include makefile_windows.variables include makefile_windows.variables
@ -39,7 +40,7 @@ unitTests:
TEST_BIN = runTests TEST_BIN = runTests
unitTests: stack.o test_stack.o unitTests: stack.o test_stack.o
$(CC) $(FLAGS) -I$(unityfolder) -o $(TEST_BIN) stack.o test_stack.o $(unityfolder)/unity.c $(CC) $(FLAGS) $(ASAN_FLAGS) -I$(unityfolder) -o $(TEST_BIN) stack.o test_stack.o $(unityfolder)/unity.c
test_stack.o: test_stack.c test_stack.o: test_stack.c
$(CC) $(FLAGS) -I$(unityfolder) -c test_stack.c -o test_stack.o $(CC) $(FLAGS) -I$(unityfolder) -c test_stack.c -o test_stack.o
@ -51,5 +52,5 @@ clean:
ifeq ($(OS),Windows_NT) ifeq ($(OS),Windows_NT)
rm -f *.o doble rm -f *.o doble
else else
del /f *.o doble rm -f *.o doble
endif endif

17
stack.c
View File

@ -68,16 +68,17 @@ StackNode *pop(StackNode *stack)
void *top(StackNode *stack) { return stack != NULL ? stack->data : NULL; } void *top(StackNode *stack) { return stack != NULL ? stack->data : NULL; }
// Clears stack and releases all memory. // Clears stack and releases all memory.
void clearStack(StackNode *stack) void clearStack(StackNode **stack)
{ {
while (stack != NULL) while (*stack != NULL)
{ {
StackNode *next = stack->next; StackNode *next = (*stack)->next;
free(stack); free(*stack);
stack = next; (*stack)->data = NULL;
stack->data = NULL; (*stack)->next = NULL;
stack->next = NULL; (*stack)->prev = NULL;
stack->prev = NULL; (*stack) = next;
} }
} }

View File

@ -40,6 +40,6 @@ StackNode *pop(StackNode *stack);
void *top(StackNode *stack); void *top(StackNode *stack);
// Clears stack and releases all memory. // Clears stack and releases all memory.
void clearStack(StackNode *stack); void clearStack(StackNode **stack);
#endif #endif

View File

@ -36,7 +36,7 @@ void test_clearStack(void) {
testStack = push(testStack, &testInts[i]); testStack = push(testStack, &testInts[i]);
} }
clearStack(testStack); clearStack(&testStack);
TEST_ASSERT_NULL(testStack); TEST_ASSERT_NULL(testStack);
} }