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