From 9363ed22aa8b60694a81cab8423bb9b01049a7fa Mon Sep 17 00:00:00 2001 From: Thilo Date: Sun, 7 Dec 2025 15:16:00 +0100 Subject: [PATCH] Added stack function --- .vscode/tasks.json | 28 +++++++++++++++++++++++++++ doble_initial.exe | Bin 0 -> 66659 bytes highscores.txt | 1 + stack.c | 47 +++++++++++++++++++++++++++++++++++++++++++++ stack.h | 6 ++++++ test_stack.c | 32 ++++++++++++++++++++++++++++++ 6 files changed, 114 insertions(+) create mode 100644 .vscode/tasks.json create mode 100644 doble_initial.exe create mode 100644 test_stack.c diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..15bd63e --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,28 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: gcc.exe build active file", + "command": "C:\\ProgramData\\mingw64\\mingw64\\bin\\gcc.exe", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}\\${fileBasenameNoExtension}.exe" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "Task generated by Debugger." + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/doble_initial.exe b/doble_initial.exe new file mode 100644 index 0000000000000000000000000000000000000000..5d14d7f74503f8e1ac74b0c71164624874fa3bdf GIT binary patch literal 66659 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

x-o`UYTSap{#S`^Bw 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 literal 0 HcmV?d00001 diff --git a/highscores.txt b/highscores.txt index 4edd5a7..204bdab 100644 --- a/highscores.txt +++ b/highscores.txt @@ -1 +1,2 @@ +player_name;4980 player1;3999 diff --git a/stack.c b/stack.c index e3a90d4..8e7076e 100644 --- a/stack.c +++ b/stack.c @@ -10,24 +10,71 @@ // Pushes data as pointer onto the stack. StackNode *push(StackNode *stack, void *data) { + StackNode *newNode = (StackNode *)malloc(sizeof(StackNode)); + + if(newNode == NULL) + { + perror("Fehler! Der Speicher für den neuen StackNode konnte nicht allokiert werden!\n"); + return stack; + } + + newNode->data = data; //saves data in newNode + newNode->next = stack; //pushes the newNode on top of stack (newNode->next points to previous Top-Node) + return newNode; } // Deletes the top element of the stack (latest added element) and releases its memory. (Pointer to data has to be // freed by caller.) StackNode *pop(StackNode *stack) { + if (stack == NULL) + { + perror("Fehler! Stack darf zum poppen nicht leer sein!\n"); + return stack; + } + + StackNode *old = stack; //temporary pointer to old top of stack + stack= stack->next; //update stack pointer to point to next element + + free(old); //free the memory of the old StackNode (old->data is not beeing freed) + + return stack; } // Returns the data of the top element. void *top(StackNode *stack) { + if (stack == NULL) + { + perror("Fehler! Kann von einem leeren Stack nicht das oberste Element lesen!\n"); + return NULL; + } + void *data = stack->data; + return data; } // Clears stack and releases all memory. void clearStack(StackNode *stack) { + StackNode *current = stack; + StackNode *next; + while (current != NULL) + { + next = current->next; + + if (current->data != NULL) + { + free(current->data); + current->data = NULL; + } + + free(current); + current = NULL; + + current = next; + } } \ No newline at end of file diff --git a/stack.h b/stack.h index f7d542d..79f2562 100644 --- a/stack.h +++ b/stack.h @@ -8,6 +8,12 @@ The latest element is taken from the stack. */ #include //TODO: passenden Datentyp als struct anlegen +typedef struct StackNode +{ + void *data; + struct StackNode *next; +} StackNode; + // Pushes data as pointer onto the stack. StackNode *push(StackNode *stack, void *data); diff --git a/test_stack.c b/test_stack.c new file mode 100644 index 0000000..b0579e9 --- /dev/null +++ b/test_stack.c @@ -0,0 +1,32 @@ +#include +#include +#include "stack.h" + +void test_on_empty_stack(void) +{ + StackNode *stack = malloc(sizeof(StackNode)); + + StackNode *a = pop(stack); + + printf("%s", stack); +} + +void test_push(void) +{ + int *test_value = malloc(sizeof(int)); + test_value = (int*)1; + StackNode *stack = malloc(sizeof(StackNode)); + + StackNode *new_stack = push(stack, test_value); + + +} + +int main() +{ + printf("============================\nStack Tests\n============================\n"); + + test_on_empty_stack; + + return EXIT_SUCCESS; +} \ No newline at end of file