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

17
stack.c
View File

@ -68,16 +68,17 @@ 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)
while (*stack != NULL)
{
StackNode *next = stack->next;
free(stack);
stack = next;
stack->data = NULL;
stack->next = NULL;
stack->prev = NULL;
StackNode *next = (*stack)->next;
free(*stack);
(*stack)->data = NULL;
(*stack)->next = NULL;
(*stack)->prev = NULL;
(*stack) = next;
}
}

View File

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

View File

@ -36,7 +36,7 @@ void test_clearStack(void) {
testStack = push(testStack, &testInts[i]);
}
clearStack(testStack);
clearStack(&testStack);
TEST_ASSERT_NULL(testStack);
}
@ -56,4 +56,4 @@ int main(void) {
RUN_TEST(test_clearStack);
return UNITY_END();
}
}