From 166b49ca635b8dea847c15e7b63c33b57e4d0680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jules=20St=C3=A4hli?= <jules.stahli@gmail.com> Date: Sat, 27 Nov 2021 19:45:59 +0100 Subject: [PATCH] #11 Add stack_clone function --- stack.c | 9 +++++++++ stack.h | 1 + 2 files changed, 10 insertions(+) diff --git a/stack.c b/stack.c index 2746918..222323a 100644 --- a/stack.c +++ b/stack.c @@ -16,3 +16,12 @@ void stack_peek(stack s, int *value){ *value = s.data[s.top]; } } + +void stack_clone(stack s, stack *clone) { + clone->top = s.top; + clone->capacity = s.capacity; + clone->data = malloc(sizeof(int) * s.capacity); + for (int i = 0; i <= s.top && i < s.capacity; i++) { + clone->data[i] = s.data[i]; + } +} \ No newline at end of file diff --git a/stack.h b/stack.h index 8da80c2..f1bd309 100644 --- a/stack.h +++ b/stack.h @@ -10,5 +10,6 @@ typedef struct _stack { void stack_init(stack *stack); void stack_peek(stack s, int *value); +void stack_clone(stack s, stack *clone); #endif -- GitLab