diff --git a/README.md b/README.md
index 229684660ee3f291ddf813fa8a26e1ea75125c45..6815811d225fd4f48c938f064a918fbd955db127 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1 @@
 # stack
-
diff --git a/stack.c b/stack.c
index efeb060c6d3c922200fb3c3508b26ad33ca804ad..183570051fd02310aa89db9b224ed6b94279cd97 100644
--- a/stack.c
+++ b/stack.c
@@ -40,3 +40,8 @@ void stack_clone(stack s, stack *clone) {
     }
 }
 
+int get_length(stack s)
+{
+    return s->top + 1;
+}
+
diff --git a/stack.h b/stack.h
index 66056e2b928af4f82d1e7dab3c3e397ca0dc9047..fc3bc04697bb7e9e90cd32b17f8e3c161c92247b 100644
--- a/stack.h
+++ b/stack.h
@@ -11,6 +11,7 @@ void stack_init(stack *stack);
 
 void stack_peek(stack s, int *value);
 void stack_clone(stack s, stack *clone);
+int get_length(stack s);
 
 void stack_print(const stack s);