diff --git a/stack.c b/stack.c index 2bce8f20e53dcab89df1b13d7851cbb413282460..27469186a0c3fb480eb73d281b64eac8d52ed6bd 100644 --- a/stack.c +++ b/stack.c @@ -1,8 +1,18 @@ #include <stdio.h> +#include <stdlib.h> #include "stack.h" +#define DEFAULT_CAPACITY 4 + +void stack_init(stack *s) +{ + s->top = -1; + s->capacity = DEFAULT_CAPACITY; + s->data = malloc(sizeof(int) * DEFAULT_CAPACITY); +} + void stack_peek(stack s, int *value){ - if(stack_is_empty(s)){ - *value=s.data[s.top]; + if (!stack_is_empty(s)) { + *value = s.data[s.top]; } } diff --git a/stack.h b/stack.h index b1ac1daca11f8eb0cbe7e5698b829c71cf9a3264..8da80c2f2fff5493b622780eb35d4157b1362621 100644 --- a/stack.h +++ b/stack.h @@ -7,6 +7,8 @@ typedef struct _stack { int top; } stack; +void stack_init(stack *stack); + void stack_peek(stack s, int *value); #endif