stack.c test laufen alle
This commit is contained in:
parent
382c36b1b4
commit
74fdcf500f
5
makefile
5
makefile
@ -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
17
stack.c
@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
2
stack.h
2
stack.h
@ -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
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user